zend验证器无法正常工作

时间:2011-04-21 06:29:53

标签: php zend-framework zend-form zend-decorators

我正在创建一个Zend表单。

当我提交表单时,不会显示错误消息。似乎永远不会触发验证器。这是我的代码:

  

$ form = new 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',   
     ));
     

$这 - >视图 - >分配( '形式',$形式);
          $这 - > _helper->&版图GT; disableLayout();

     如果

($请求 - > isPost())
         {
             的print_r($请求 - >的getPost());
         }

这是我的装饰者:

  

public $ textbox = array(

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

'元素', '宽度'=> '43%”, 'VALIGN'=> '顶部')),

  'Errors',

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

array(array('openLabel'=>'HtmlTag'),array('tag'=>'td',>'openOnly'=> true,'align'=>'right', 'VALIGN'=> '顶部', '宽度'=> '15%')),

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

public $ buttonDecorators = array(

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

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

我想你错过了

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

祝你好运: - )