2012-04-13 11 views
9

Ich habe zend Framework Controller. In init-Methode erstellen i ein Formular, und füllen Sie das Drop-Down-Box mitisValid in zend Rahmenform liefert FALSE

$form = new FORM_NAME(); 
$form->getElement('ZdGroup')->addMultiOptions($zendesk_groups); 

dann in Aktion überprüfen i

$formData = $this->getRequest()->getParams(); 
    if ($form->isValid($formData)) { 
     ... 
} 

aber isValid() kehrt FALSE wenn ich diese Zeile löschen $form->getElement('ZdGroup')->addMultiOptions($zendesk_groups); es Rückkehr TRUE.

Ich verstehe nicht warum, hat jemand eine Idee?

+1

Wir brauchen Ihre 'FORM_NAME()' Klasse, um zu wissen, was Ihr Formular macht. – Liyali

+0

Möglicherweise ist dieses Element bei FORM_NAME als erforderlich festgelegt. $ element-> setRequired (true)? – dimirc

Antwort

17

Um die Frage nach dem "Warum" zu beantworten, haben Sie die Formularfehlermeldungen verloren?

$form->getMessages(); //error messages 
$form->getErrors(); //error codes 
$form->getErrorMessages(); //any custom error messages 

Das könnte Ihnen zumindest eine bessere Vorstellung von "warum" geben.

+0

Danke, es half –

+4

manchmal die Dateieingabe ohne Einstellung enctype auf Formular verwenden, dieses Problem verursachen. –

+0

umm .. bist du sicher? messages ist leer und errors/errorMessage existiert nicht einmal als functino. – Blauhirn