Zend Framework: ошибки не видны / не отображаются - PullRequest
0 голосов
/ 13 июля 2011

У меня есть следующий класс формы:

$username = new Zend_Form_Element_Text('username');
$username->setLabel('Username:')
      ->setRequired(true)
      ->addValidator('NotEmpty')
      ->addFilter('StringTrim')
      ->setAttribs(array('class' => 'textfield'));

$submit = $this->createElement('submit', 'mySubmit');
$submit->setLabel('Login')
       ->setAttribs(array('id' => 'btnsubmit', 'class' => 'btn'));

$reset = $this->createElement('reset', 'myReset');
$reset->setLabel('Reset')
      ->setAttribs(array('id' => 'btnreset', 'class' => 'btn'));

$this->addElements(array($username, $submit, $reset));

$this->setElementDecorators(array(
    'ViewHelper',
    'Errors',
    array('Label', array('class' => 'login_label', 'placement'=> 'REPLACE')),
    array('HtmlTag', array('tag'=> 'p')),    
));

 $this->setDecorators(array(
     'FormElements',
     'Form',             
     array('Fieldset', array('legend' => 'Login Info')), 
     array(array('mydiv' => 'HtmlTag'), array('tag' =>'div', 'id' => 'lgrd')),
 ));

И следующий код контроллера действий:

$form = new Application_Form_Adminlogin();
$this->view->form = $form;

Если я отправлю пустое поле имени пользователя, то на странице не будет отображаться никаких ошибок. Кто-нибудь может подсказать мне, что я делаю неправильно и как это можно исправить.

Заранее спасибо

1 Ответ

0 голосов
/ 13 июля 2011

Zend_Form не заполняет / проверяет автоматически переменные GET / POST agaist.

Как отмечено в комментариях, вы должны сделать следующее:

$postData = $this->getRequest()->getPost();
if($form->isValid($postData)) {
  // Do what you need to do when form is valid
} else {
  // Do what you need to do when form is NOT valid
}
$this->view->form = $form; 

Это также должно отображать ошибки, когдаФорма отображается после ввода неверных параметров.

...