können keine benutzerdefinierten Prüfprogramme in ZF2 verwendet werden. Ich frage mich, ob dieses Problem schon einmal bei jemandem aufgetreten ist. Ich bin mit der vorkonfigurierten Form spec das Zend \ Formular \ Fabrik erstellen Formular, ich bin auch die FormElementManager in die Fabrik eingespritzt, so dass es meine benutzerdefinierten Elemente usw. findetBeim Erstellen eines Formulars mit Factory
Meine Frage ist:
Selbst Wenn benutzerdefinierte Validatoren mit dem Formular registriert sind, lösen sie keine isValid() -Methode aus. Gibt es etwas, was ich tun muss, um die isValid() ausgelöst mit dem Erstellen des Formulars mit Factory zu bekommen.
Meine Quelle sieht wie folgt aus:
$spec = [
'hydrator' => '...',
'fieldset' => [
...,
...,
...,
],
'input_filter' => [
...,
....
....,
//contains my custom validator in here
],
];
$factory = new Factory();
$factory->setFormElementManager($formElementManager);
$form = $factory->createForm($spec);
Aber wenn ich auslösen:
$form->isValid()
Es ist nicht in meiner benutzerdefinierten Validator zum isValid Anruf erhalten.
Danke Alex, für Ihren Kommentar. –
Das Problem war nicht nur das. Grundsätzlich werden alle zf2-Formularelemente, die nicht benötigt werden, nicht die Validatoren in der Validierungskette aufrufen, was zu dem Problem führt, dem ich gegenüberstehe. Meine Lösung bestand darin, den Not_Empty-Validator hinzuzufügen, wenn die Eingabe nicht erforderlich war und alle Validatoren einschließlich meines benutzerdefinierten Validators ausgelöst wurden. Siehe: https://akrabat.com/category/zend-framework-2/ –