2010-12-19 34 views

回答

1

该方法isValid填充表单字段。您不必手动重新填充。

1

我觉得处理表单处理的最佳方法是使用类似

$form = new My_Form; 
if ($this->getRequest()->isPost() 
    && $form->isValid($this->getRequest()->getPost()) { 
    // process form and redirect (PRG pattern) 
} 
$this->view->form = $form; 

这样,你的形式显示在第一个请求,如果无效,与提交的值再次显示和任何验证消息。

+0

并且你是否在代码snipplet之前声明'$ form = new Application_Form_Project()'?如果是这样,我认为价值将是空的?我得到“值是必需的,不能为空的错误” – 2010-12-19 05:04:49

+1

我只是像你和菲尔描述的那样:'$ form = new Application_Form_Project()',后面跟着'isPost()'和'isValid()'检查。验证失败后,我的表单将填充发布的数据。这里还有其他的东西吗? – 2010-12-19 07:42:26

0

如果您使用的是一些自定义的isValid,请不要忘记您的表单还具有populate()函数。

所以

$data = $this->getRequest()->getPost(); 
if(!$myForm->isValid($data)){ 
    $myForm->populate($data); 
} 

无需用手多数民众赞成一定要去做。

当然不要忘记分配给你做了的isValid相同的对象 - 填充电话上

$this->view->form = $myForm; 

检查后。

相关问题