/ / Eingabefilter für mehrere Tabellen in Zend Framework 2? - PHP, Zend-Framework2

Eingabefilter für mehrere Tabellenform in Zend Framework 2? - php, zend-framework2

Ich versuche, mehrere Tabellenform in Zend zu erstellenframework 2. Ich habe ein einzelnes Formular entwickelt, indem ich das Feld mit Hilfe des HTML-Eingabearrays getrennt habe. Ein Feld, das zur Tabelle "pages" gehört, sieht so aus

$this->add(array(
"name" => "pages[title]",
"attributes" => array(
"type" => "text",
"id" => "title"
),
"options" => array(
"label" => "Title",
),
));

Aber sein Filter ist

$inputFilter->add($factory->createInput(array(
"name" => "title",
"required" => true,
"filters" => array(
array("name" => "StripTags"),
array("name" => "StringTrim"),
),
"validators" => array(
array(
"name" => "NotEmpty",
),
),
)));

Der Grund für die Namensänderung ist, dass ich das Feld Schritt für Schritt validiere, indem ich die Werte in meinem Controller entsprechend wie folgt verweise

$form->setData($this->request->getPost()->pages);

Das Problem tritt auf, während das Nachrichtenarray abgerufen wird. Die Funktion isValid () des Formulars funktioniert einwandfrei, gibt jedoch bei ungültiger Eingabe ein leeres Array von Nachrichten zurück. Wie kann ich die Nachrichten erhalten?


Beim tieferen Graben habe ich diesen Filter herausgefundengibt Nachrichten zurück, aber wenn das Formular Fehlermeldungen über den Namen des Filters und des Elements abbildet und da ich verschiedene Namen verwende, kann es nicht zugeordnet werden

Und bevor Sie mich bitten, mir die gleichen Namen zuzuweisenFormularelemente und Filter funktionieren nicht, da das Formular dem Element mit pages [title] keine Daten zuweisen kann, da es auf Anforderung keine Eingabe mit Namenseiten [title] empfängt, sondern ein Array von Seiten

Antworten:

1 für die Antwort № 1

Ich würde einen anderen Ansatz wählen. Behalten Sie Ihre Namen einfach, ohne die Array-Notation hinzuzufügen.

Sie können dann verschiedene Schritte mit Validierungsgruppen und Feldern überprüfen.

http://framework.zend.com/manual/2.0/en/modules/zend.form.quick-start.html#validation-groups

Wenn Sie mehr Details über das, was Sie erreichen wollen, angeben können, ist die Antwort einfacher.