0

viewRender 関数を使用して indexAction から editAction にパラメーターを送信しようとしています。問題は、editAction が呼び出されたときに $form が投稿されたと考えるようになることです。

public funciton indexAction(){
    ...
    if(isset($_POST['edit'])){
       $this->_helper->viewRenderer('edit');
       $this->editAction($thingINeed);
    }
    ...
}

public function editAction($thingINeed){
    ...
    if($form->posted){
        var_dump('FORM POSTED');
    }
    ...
}

フォームをまだ投稿していないのに、「FORM POSTED」がすぐに印刷されます。最初のレンダリングでフォーム $form->posted が true に設定されている理由がわかりません。これがなぜなのか、または回避策があるのか​​ 誰かが考えを持っていますか?

4

2 に答える 2

0

次のようにフォームを確認する必要があります。

$form = new MyForm();

if ($this->_request->isPost()) {
    $formData = $this->_request->getPost();
    if ($form->isValid($formData)) {
        echo 'success';
        exit;
    } else {
        $form->populate($formData);
    }
}

$this->view->form = $form;
于 2013-08-08T13:57:22.077 に答える