2012-01-27 56 views
2

一個用戶可能只有1個項目或沒有項目。 (1-1..0的關係)與教條的嵌入式形式中的1到1..0關係

我正試圖在symfony2中使用教義來實現。

我已經完成了1對1的關係,它非常簡單。但我怎麼能指定主義,當我想創建一個用戶,該項目可以爲空? (而不是插入新行和剛剛離開id_item空)

這是我有:

// User Class 
    /** 
    * 
    * @ORM\OneToOne(targetEntity="Items", cascade={"persist"}) 
    * @ORM\JoinColumn(name="id_item", referencedColumnName="id", nullable=true) 
    * 
    * @var SOA\AXBundle\Entity\Items $userItem 
    * @Assert\Type(type="SOA\AXBundle\Entity\Items") 
    */ 
    protected $userItem; 

和當然,我創建ItemsTypeForm類,並在我的userstypeform類添加的類型:

// UsersTypeForm Class 
    ->add('userItem', new \SOA\AXBundle\Form\ItemsTypeForm()) 

當我添加一個新用戶,一切順利。插入用戶以及項目。但是,當我嘗試添加地方有沒有項目的用戶(用戶項字段爲空),我收到以下錯誤:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null

它試圖插入的項目,與空值。

雖然我可以生活在一對一的關係,我想學習如何使1到1..0的關係。

編輯出真正的問題。編輯是大膽的。

回答

0

Assert的註釋導致問題。您必須設置空值在Assert中有效。

+0

我認爲assert與它無關,除了joincolumn註釋中的空值之外,我沒有看到任何「有效的空值」。我編輯了我的問題,現在我的問題是當我嘗試創建沒有項目的新用戶時,它嘗試插入一個空白值的新項目。 – jonv1 2012-01-30 17:23:12

+0

你有在表單的樹枝userItem.name? – 2012-02-01 10:24:22

+0

是的。我必須去除它或類似的東西嗎? – jonv1 2012-02-01 19:20:14