2016-09-08 3 views
0

Ich habe ein Feld in einer Form namens 'discountCode' in Bezug auf 'codiceSconto' in der User.php-Klasse.Formularfeld (unique = true) und (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; 

Es stellt einen Rabattcode dar, den der Benutzer verwenden könnte, um ein Produkt zu kaufen. Es ist nicht erforderlich. Ich habe es auf (unique = true) festgelegt, weil jeder Rabatt einen Rabattprozentsatz darstellt, also muss es eindeutig sein. Aber ich habe einen Fehler bekommen, wenn ich versuche, das Formular zu validieren, das besagt, dass das Feld discountCode nicht NULL sein kann. Irgendwelche Vorschläge?

Antwort

1

Sie haben die Option nullable in der Join-Spalte verpasst.
Außerdem müssen Sie den Spaltentyp nicht angeben, wenn Sie eine Beziehung mit anderen Entitäten haben. Überprüfen Sie das folgende Code-Snippet

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

Mmh, habe es nicht verstanden. Ich habe die ursprüngliche Frage mit der gesamten Beziehung bearbeitet. Ich kann den Fehler nicht finden. –

+0

@ZugZwang Wie ich hier sagte, sollten Sie in JoinColumn die 'nullable' -Option setzen und Sie sollten die' Spalte' nicht deklarieren, wenn Sie sich in einer Beziehungssituation befinden. Bitte lesen Sie noch einmal meine Antwort. – DonCallisto

Verwandte Themen