回发后,假设验证失败,我想再次显示错误的表单,我发现表单是空的,我必须手动重新填充表单字段吗?
答案 0 :(得分:1)
我发现处理表单处理的最佳方法是使用
之类的东西$form = new My_Form;
if ($this->getRequest()->isPost()
&& $form->isValid($this->getRequest()->getPost()) {
// process form and redirect (PRG pattern)
}
$this->view->form = $form;
这样,您的表单会在第一个请求中显示,如果无效,则会使用提交的值和任何验证消息重新显示。
答案 1 :(得分:1)
方法isValid填充表单字段。您无需手动重新填充。
答案 2 :(得分:0)
如果你使用的是一些自定义的isValid,请不要忘记你的表单也有一个populate()函数。
所以
$data = $this->getRequest()->getPost();
if(!$myForm->isValid($data)){
$myForm->populate($data);
}
无需手动执行即可。
当然不要忘记分配你所做的isValid相同的对象 - 填充
上的调用$this->view->form = $myForm;
检查后。