我必须在手动回发后重新填充Zend_Form字段吗?

时间:2010-12-19 03:38:29

标签: zend-framework zend-form

回发后,假设验证失败,我想再次显示错误的表单,我发现表单是空的,我必须手动重新填充表单字段吗?

3 个答案:

答案 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;

检查后。