Hallo zusammen,
ich such mal wieder nach einem Weg und komme nicht weiter.
Es gibt zwei FormTypes ( Person und User ) und auch die passenden Entitys dazu.
Die Beziehung ist OneToOne.
Ich möchte beim Validieren, aber nicht beide Formulare überprüfen, sondern PersonType immer und wenn eine Checkbox ( isActive ) true ist, auch das UserType.
Nutze ich im PersonEntity folgendes:
Dann wird auch immer sofort das UserType mit validiert.
Lasse ich die Annotation @Assert\Valid weg, wird UserType nicht mit validiert.
Soweit ok, aber wie könnte ich im Controller nachträglich den UserType Validieren?
Bisher fällt mir nur ein, dass von Hand zu machen.
Aber dann habe ich die Fehlermeldungen nicht direkt am Formular Element.
Ich habe auch Validation Groups ( https://symfony.com/doc/current/vali..._provider.html ) gefunden, dass ist vielleicht nicht ganz verkehrt, aber da fehlt mir dennoch die Möglichkeit zu bestimmen, dass die zweite Gruppe geprüft werden soll, wenn ein ein bestimmter Wert gesetzt ist.
Oder ich finde es nicht.
Jemand eine Idee?
ich such mal wieder nach einem Weg und komme nicht weiter.
Es gibt zwei FormTypes ( Person und User ) und auch die passenden Entitys dazu.
Die Beziehung ist OneToOne.
Ich möchte beim Validieren, aber nicht beide Formulare überprüfen, sondern PersonType immer und wenn eine Checkbox ( isActive ) true ist, auch das UserType.
Nutze ich im PersonEntity folgendes:
PHP-Code:
/**
* @Assert\Valid
* @ORM\OneToOne(targetEntity="App\Entity\User", mappedBy="person", cascade={"persist", "remove"})
*/
private $user;
Lasse ich die Annotation @Assert\Valid weg, wird UserType nicht mit validiert.
Soweit ok, aber wie könnte ich im Controller nachträglich den UserType Validieren?
PHP-Code:
if ($form->isSubmitted() && $form->isValid()) {
$staffForm = $form->getData();
/** @var Person $personForm */
$personForm = $staffForm->getPerson();
/** @var User $userForm */
$userForm = $personForm->getUser();
if($userForm->getisActive()){
// Jetzt noch das UserType validieren.
// ....
}
}
Aber dann habe ich die Fehlermeldungen nicht direkt am Formular Element.
Ich habe auch Validation Groups ( https://symfony.com/doc/current/vali..._provider.html ) gefunden, dass ist vielleicht nicht ganz verkehrt, aber da fehlt mir dennoch die Möglichkeit zu bestimmen, dass die zweite Gruppe geprüft werden soll, wenn ein ein bestimmter Wert gesetzt ist.
Oder ich finde es nicht.
Jemand eine Idee?
Kommentar