Symfony2+Lehre - Validierung eins-zu-viele-Sammlung von Entitäten
Ich habe ein Formular zum erstellen einer neuen Entität. Diese Entität hat eine Sammlung von anderen Unternehmen, die auch die Eingabe in das Formular.
Möchte ich die Validierung Optionen der Entität in der Sammlung zu überprüfen, diese Entitäten aber es funktioniert nicht. Die Validierungs-Regeln der "Haupt" - entity (Person) geprüft werden, aber die Validierungs-Regeln der Entitäten in der addressList
Sammlung (Adresse), werden nicht überprüft. Wenn ich die Eingabe Ungültiger Daten in die Felder, die eingereichten Formular erfolgreich validiert.
In diesem Beispiel ist die annotation für die Straße nicht über die validation.
class Person
{
...
/**
* @ORM\OneToMany(targetEntity="Address", mappedBy="owner", cascade={"persist", "detach"})
*/
protected $addressList;
....
}
class Address
{
...
/**
* @ORM\ManyToOne(targetEntity="Person", inversedBy="addressList")
* @ORM\JoinColumn(name="person_id", referencedColumnName="id", onDelete="CASCADE")
*/
protected $owner;
/**
* @ORM\Column(type="string", length=75)
* @Assert\MinLength(
* limit=3,
* message="Street must have atleast {{ limit }} characters."
* )
*/
protected $street;
...
}
Wie bekomme ich das Formular zu validieren, die angegebene Adresse geliefert Entitäten?
- Ich wurde dieser durch Zugabe von
'cascade_validation' => true
auf das array dergetDefaultOptions()
des PersonType.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche problem wurde aber gelöst mit:
@Assert\Valid
macht es überprüfen alle Einschränkungen, die für die ManyToOne-Seite der Sammlung-und es ist genau das, was ich brauchte.Benutze ich dieses:
http://symfony.com/doc/current/reference/constraints/Callback.html
Nur Anmerkung hinzufügen geltend machen, die wie folgt
Konnte man auch mit dem "Gültig" Einschränkung mit der "Alle" Einschränkung :