2010-12-19 33 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; 

檢查後。

相關問題