我有2個實體:User
和Avatar
。每個用戶都可以從列表中選擇一個頭像,所以我認爲這是一個One2One單向關係。問題是,當我保存表單時,db中的字段avatar_id
始終爲NULL
。Symfony2形式和Doctrine OneToOne關係
讓我們來看看代碼:
class User implements UserInterface
{
/**
* @var int $avatarId
*
* @ORM\Column(name="avatar_id", type="integer", nullable=true)
*/
private $avatarId;
/**
* @var Avatar
*
* @ORM\OneToOne(targetEntity="Avatar", cascade={"persist", "remove"})
*/
private $avatar;
}
當我在保存之前var_dump
用戶對象,領域avatarId
包含Avatar
對象,但ID不會被保存。我做錯了什麼?
["avatarId":"Test\UserBundle\Entity\User":private]=>
object(Test\UserBundle\Entity\Avatar)#419 (5) {
["id":"Test\User\Bundle\Entity\Avatar":private]=>
int(3)
["imageName":"Test\UserBundle\Entity\Avatar":private]=>
string(14) "death-dark.jpg"
}
我刪除了avatarId字段,但出現以下錯誤:屬性avatarId在類Test \ UserBundle \ Entity \ User中不存在 – Gianluca78 2012-04-05 14:55:59
根本不需要它。 「avatar」字段是您需要處理的內容。 avatar_id列自動處理。 – 2012-04-05 15:00:51
好的!我知道了!謝謝! – Gianluca78 2012-04-05 15:08:38