我想修改我的用戶類(FOS_UserBundle)。我有一個與公司分開的表格,當創建用戶時,我希望將它綁定到這些公司之一。最終,我將不得不發現如何在創建公司表中的條目時自動創建用戶,但現在我只是試圖提供測試數據。不能添加字段到我的用戶類(Fos_UserBundle)
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var object BizTV\BackendBundle\Entity\company
*
* @ORM\ManyToOne(targetEntity="BizTV\BackendBundle\Entity\company")
* @ORM\JoinColumn(name="company", referencedColumnName="id")
*/
protected $company;
在我的結構我試圖設置
$this->company = 1;
但由於它想要的對象,是行不通的,所以我實例化的公司對象,並使用虛擬數據填充它...
$dummy = new company;
$dummy->setActive(true);
$dummy->setCompanyName('myCompany');
$dummy->setId(1);
$this->company = $dummy;
然後我得到被人發現一個新的實體的錯誤信息......
一個新的實體是缶通過未配置爲級聯實體的持續操作的關係'BizTV \ UserBundle \ Entity \ User#company': BizTV \ BackendBundle \ Entity \ company @ 0000000018a5279000000000049c7b23。顯式持久化新實體或在關係上配置級聯持久操作。如果您無法找到哪個實體導致問題實現'BizTV \ BackendBundle \ Entity \ company #__ toString()'以獲取線索。
什麼是公司表中的FK在fos_user表?我認爲'@ORM \ JoinColumn(name =「id」,referencedColumnName =「id」)'是錯誤的,因爲用戶類的id對於公司來說顯然不是FK?應該是'name =「company_id」'或者我想的東西。這不是真的關於symfony,但學說 – mask8 2012-07-21 22:48:48
你是對的,我相應地更新了這個問題,雖然有一個問題仍然存在.. – 2012-07-21 22:55:05
你是否堅持公司對象像$ em-> persist($ dummy)在你沖洗em之前?否則會發生錯誤。 – mask8 2012-07-21 23:14:11