UserController.php
-------------
editAction (method)
----------
$UserInfo = array(
'hdn_uid'=>$UserResult['user_id'],
'username'=>$UserResult['user_name'],
'firstname'=>$UserResult['first_name'],
);
$form->populate($UserInfo);
$this->view->form = $form;
Forms/userEdit.php
------------------
$elementDecoration = array(
'ViewHelper',
'Description',
'Errors',
array(array('data' => 'HtmlTag'), array('tag' => 'td')),
array('Label', array('tag' => 'td', 'placement' => 'prepend')),
array(array('row' => 'HtmlTag'), array('tag' => 'tr')),
);
$hdn_id = new Zend_Form_Element_Hidden('hdn_uid');
$hdn_id->addFilter('Int')
->removeDecorator('label')
->removeDecorator('HtmlTag');
$this->setName('login');
$this->setDecorators($formDecoration);
$username = new Zend_Form_Element_Text('username'); //Note this username and in conroller $UserInfo arr 'username' matched so in the text fields existing username is populated from table.
$username->setLabel('Username')
->setDecorators($elementDecoration)
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim');
$submit = new Zend_Form_Element_Submit('submit');
$submit->setDecorators($buttonDecoration);
$this->addElements(array($hdn_id,$username,$submit));
问题
Server side validation not working, due to some mistake in the above snippet
详细信息
Server side validation not working in the above code, when i clear the username and if i submited the button then program does not validated the field, instead it updated the empty value into table.
注意 这个代码适用于用户添加表单。但它无法用于编辑表格。
答案 0 :(得分:0)
这几乎是在Zend Framework 1中处理表单的标准工作流程:
public function editAction(){
//set up the form
$form = new Application_Form_UserEdit();
$form->setMethod('post');
$form->setAction('/user/edit');
//test for POST array
if ($this->getRequest()->isPost()) {
//validate form
if ($form->isValid($this->getRequest()->getPost()) {
//get validated and filtered form values
$data = $form->getValues();
//do some stuff
} // if form not valid it should redisplay with current data automatically
} else {
//if not POST display empty form
$this->view->form = $form;
}
}
我希望这会有所帮助。
答案 1 :(得分:0)
这一行解决了我的问题
if($ form-> isValid($ this-> getRequest() - > getPost())