2016-09-08 176 views
0

我在User.php類中有一個名爲'discountCode'的表單與'codiceSconto'關聯。表單字段(unique = true)和(nullable = true)

//Discount.php 
/** 
* @ORM\Column(type= "integer", nullable = true) 
* @ORM\OneToMany(targetEntity= "User", mappedBy = "codiceSconto") 
*/ 
private discountCode; 


//User.php 
/** 
* @ORM\Column(type="integer", length=5, nullable=true) 
* @ORM\ManyToOne(targetEntity="Discount", inversedBy="discountCode") 
* @ORM\JoinColumn(name="codicesconto_id", referencedColumnName="id") 
*/ 

private $codiceSconto; 

它代表用戶可以用來購買產品的折扣碼。 這不是必需的。 我將它設置爲(唯一=真),因爲每個折扣代表折扣百分比,所以它必須是唯一的。但是,當我嘗試驗證表示說明discountCode字段不能爲NULL時,我收到了一個錯誤。 有什麼建議嗎?

回答

1

您錯過了連接列中的nullable選項。
此外,如果您處於與其他實體的關係中,則不需要指定列類型。結帳下面的代碼片段

/** 
* @ORM\OneToMany(targetEntity= "User", mappedBy = "discount") 
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true) 
*/ 
private discountCode; 
+0

嗯,沒有得到它。我用整個關係編輯了原始問題。我找不到錯誤。 –

+0

@ZugZwang正如我在這裏所說的,你應該把'nullable'選項放到joinColumn中,當你處於關係情況時你不應該聲明'Column'。請再讀一遍我的答案。 – DonCallisto

相關問題