не работает средство проверки zend

#php #zend-framework #zend-form #zend-decorators

#php #zend-framework #zend-form #zend-декораторы

Вопрос:

Я создаю форму Zend.

когда я отправляю форму, сообщения об ошибках не отображаются. Кажется, что валидатор никогда не запускается. Это мой код:

$form = новая Zend_Form;

   $form->setMethod('POST')
   ->setAttrib('Name','pwdfrm')       
         ->setAttrib('Id','pwdfrm');

     $email = new Zend_Form_Element_Text('email');
  $email->setLabel('Email :')
      ->setDecorators($this->textbox)
      ->setRequired(true)
      ->addValidator('NotEmpty', true)
      ->addErrorMessage('In valid');

          $form->addElements(array($email, 
              new Zend_Form_Element_Submit('submit',array(
                  'decorators' => $this->buttonDecorators,
                  'Label'=>'Submit',
              )),
              ));

  $form->setDecorators(array(   
     'FormElements',
    array('HtmlTag', array('tag' => 'table','align'=>'center','class'=>'tbcss','width'=>'100%','border'=>1)),

'Form',   
     ));
  

$this->view->assign(‘форма’,$form);
$this->_helper-> layout-> disableLayout();

if($request->isPost())
{
print_r($request->getPost());
}

И это мои декораторы:

общедоступный $ textbox = массив (

 'ViewHelper',     
  'FormElements',   
  array(array('data' => 'HtmlTag'),array('tag' => 'td', 'class' =>
  

‘element’,’width’=>’43%’,’valign’=>’top’)),

   'Errors',

array(array('closeLabel' => 'HtmlTag'),array('tag' => 'td','closeOnly' => true, 'placement' =>'prepend')),    
     'Label',
  

массив (array(‘openLabel’ =>’HtmlTag’),array(‘tag’ =>’td’, >’openOnly’=> true, ‘align’=> ‘right’,’valign’=>’top’, ‘width’ =>’15%’)),

 array(array('row' => 'HtmlTag'), array('tag' => 'tr')),   
 );   
  

общедоступные $buttonDecorators = массив (

     'ViewHelper',
    'Errors',
  'FormElements',
    array('HtmlTag', array('tag' => 'td','align'=>'center','colspan'=>'2')),
    array(array('row' => 'HtmlTag'), array('tag' => 'tr')),
);
  

кто-нибудь может мне помочь, плз.

Комментарии:

1. Я не вижу, чтобы вы вызывали isValid ($ _POST).

Ответ №1:

Я думаю, вы пропустили

  // Check method/data validitiy
   if( !$form->isValid($this->getRequest()->getPost()) ) {
      return;
    }
  

Удачи 🙂