Endlich habe ich einen Weg gefunden, den Validierungsfehler (-s) zu erkennen, ohne jedes (Sub-Sub-Sub-) Fieldset und jedes (Sub-Sub-Sub-) Element zu debuggen. Es ist einfach $form->getMessages()
. Oder alternativ $this->FormElementErrors($form)
im View-Skript.
Wusste ich schon früher von diesen Methoden? Klar, habe ich getan. Aber ich war wenig Gedanken über die Art und Weise, wie es funktioniert, und die Eigenschaft messages
führte mich in die Irre:
Als ich Validierung Probleme bekam, habe ich einen Haltepunkt irgendwo nach dem Zend\Form#isValid()
Anruf und sah dann in Xdebug, dass Zend\Form#messages
Eigenschaft war leer . Und ich war überrascht, weil eine Eigenschaft "Nachrichten" darauf hinweist, dass es (Validierungsfehler) Nachrichten enthalten wird. Diese Logik gilt für in Element
s - und ein Form
tatsächlich ist einElement
(seit Form
extends
Fieldset
extends
Element
).
nach 'isValid' können Sie die Fehler mit' $ form-> getMessages() 'holen. – AlexP
können Sie auch einen Debugger wie xdebug verwenden – Unex
@AlexP Ich bin mir nicht sicher, dass es immer hilft. Z.B. in meinem Fall: Ich habe die Klasse ['Zend \ Form # isValid()'] (https://github.com/zendframework/zend-form/blob/master/src/Form.php#L523) in der Ort, wenn die Validierung abgeschlossen ist und die Nachrichten erwartet. Aber 'Order \ Form \ OrderForm # messages' war leer. Das '$ result' ist' false' und die '$ messages' sind leer. – automatix