2016-09-08 20 views
0

User.phpクラスの 'codiceSconto'に関連して、 'discountCode'というフォームに1つのフィールドがあります。フォームフィールド(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; 

これは、ユーザーが製品を購入する際に使用できる割引コードを表します。 必須ではありません。 すべての割引は割引率を表しているので、(unique = true)に設定しているので、一意でなければなりません。しかし、discountCodeフィールドをNULLにすることはできないというフォームを検証しようとすると、エラーが発生します。 提案がありますか?

答えて

1

結合列にnullableオプションがありませんでした。
さらに、他のエンティティとの関係にある場合は、列の型を指定する必要はありません。コードの次のスニペットをチェックアウトしてください

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

Mmh、それを取得していません。私は元の質問を関係全体で編集しました。私はエラーを見つけることができません。 –

+0

@ZugZwangここで述べたように、joinColumnに 'nullable'オプションを入れるべきです。関係の状況にあるときに' Column'を宣言するべきではありません。私の答えをもう一度読んでください。 – DonCallisto

関連する問題