#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;
}
Удачи 🙂