0

いくつかのテキスト フィールドを含むフォームがあり、フォームを同じコントローラーに送信する必要があるプレビュー ボタンがあります。次に、コントローラーで値を抽出し、テンプレートが表示できるようにこれらの値をフォームに入力する必要があります。これを達成するための最良の方法は何ですか?私は初心者なので、明確にしてください。

4

2 に答える 2

1

サンプルコントローラー:

public function myControllerName(sfWebRequest $request)
{
  $this->form = new myFormClass();
}

<?php echo $form->renderFormTag( url_for('@yourRoutingName'), array('method' => 'POST') ); ?>テンプレートで使用し@yourRoutingName、コントローラーを指すものに変更します。

次に、コントローラーを次のように変更します。

public function myControllerName(sfWebRequest $request)
{
  $this->form = new myFormClass();

  if ($request->isMethod(sfRequest::POST)
  {
    $this->form->bind( $request->getParameter( $this->form->getName() ) );

    // Check if the form is valid.
    if ($this->form->isValid())
    {
      $this->form->save();
      // More logic here.
    }
  }
}

この$this->form->bind( $request->getParameter( $this->form->getName() ) );部分は、投稿されたデータをフォームにバインドし$this->form->isValid()、フォームが有効かどうかにかかわらずブール値を返します。

于 2011-12-09T09:43:17.663 に答える
0

これを試しましたか?

$this->redirect($request->getReferer()); //action

そうでない場合は、試してみて、うまくいくかどうかを確認してください。

ありがとう。

于 2011-12-09T09:40:41.947 に答える