Web サイトのいくつかのページで使用したいフォームがあります。だから私は自分のページでそのようなメソッドを呼び出します:
{{ render(controller('ProjectApplicationBundle:Application:form')) }}
そして、私は自分の formAction メソッドを持っています:
public function formAction()
{
$form = $this->createForm($type,$obj);
if('POST' == $this->getRequest()->getMethod()){
$form->submit($this->getRequest());
if($form->isValid()){
//redirect to a page after the form
}
}
//render the form template ...
}
これは私のコードではなく、単なる例です。
だから私は自分のフォームを送信するためのルートを作成するために追加します
project_application_form:
pattern: /form
defaults: { _controller: ProjectApplicationBundle:Application:form }
今私の問題:)
1) URL を使用してフォームへのアクセスをブロックしたいのですが、データ処理を許可するだけです。
2)エラーの場合、ページはリダイレクトされないため、フォームはレイアウトなしで表示されるため、フォームをレンダリングするページにエラーのあるフォームを取得したいと思います。
編集: 2 番目の点の解決策があるかもしれませんが、これはあまり適切ではありません。my render の引数に設定し、render の代わりにルートに戻り、フォームをレンダリングします。最後に、セッションを使用してエラーを配置します。
私の英語で申し訳ありませんが、これがあなたにとって明確であることを願っています。