2011-11-04 78 views
0

使用FOSUserBundle,我試圖堅持相關的實體。我用UserInfo擴展了一個新的實體。持久相關實體

user_id列在用戶信息實體相關的未被充滿的id從用戶實體登記時的值::

用戶實體:

/** 
* @ORM\Entity 
* @ORM\Table(name="re_user") 
*/ 
class User extends BaseUser 
{ 
... 

    /** 
    * @ORM\OneToOne(targetEntity="UserInfo", mappedBy="user", cascade={"persist", "remove"}) 
    */ 
    protected $userinfo; 

用戶

當使用級聯功能持續
class UserInfo 
{ 
... 

/** 
* @ORM\OneToOne(targetEntity="User", inversedBy="userinfo") 
* @ORM\JoinColumn(name="user_id", referencedColumnName="id") 
*/ 
protected $user; 

... 
} 

什麼是保持相關FOSUserBundle實體的正確方法。

我希望我已經解釋清楚了,請讓我知道如果我可以進一步澄清。

+0

相關問題:http://stackoverflow.com/questions/8009406/the-good-way-to-persist-a-fosuser-entity-in-cascade –

+0

有您在代碼中對UserInfo :: $ user進行了任何分配? –

+0

我不確定你的意思是什麼,但我已經包含了我的用戶信息實體的一部分,其中JoinColumn與user_id引用用戶實體的id。 – Dru

回答

0

沒有看到$ userinfo的setter方法我只能猜測,但我有一個類似的問題。在我的情況下,問題在於我沒有在設置器中爲inversedBy屬性設置相關mappedBy屬性。

嘗試以下操作:

<?php 
// ... 
class User extends BaseUser { 
    // ... 
    public function setUserinfo(UserInfo $userinfo) { 
    $userinfo->setUser($this); 
    $this->userinfo = $userinfo; 
    } 
}