2010-12-19 15 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

コードスニペットの前に '$ form = new Application_Form_Project()'を宣言していますか?もしそうなら、値は空だと思いますか? "値が必要です&空のエラーにはなりません" –

+1

私はあなたとPhilが「$ form = new Application_Form_Project()」の後に 'isPost()'と 'isValid()'のチェックを記述するのと同様です。検証に失敗すると、私のフォームは投稿されたデータで満たされます。他に何か起こっている? –

0

カスタムisValidを使用している場合は、フォームにもpopulate()関数があることを忘れないでください。確かに手のthatsでそれを行うには

ので

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

必要はありません。もちろん

はあなたのisValidをした同じオブジェクトを割り当てることを忘れてはいけない - チェックした後

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

でコールを取り込みます。

関連する問題