サイトの多くのページに表示されるお問い合わせフォームがあります。このフォームを多くの異なるコントローラーで処理する必要があります。このすべてのコントローラーでこのフォームを処理する方法は? このフォームを処理するために特別なルートとコントローラーを定義したくありません。レンダリングされるすべてのページで処理する必要があります。
今、私はコントローラーアクションウィッチを呼び出して、フォームをそのようにレンダリングしています:
コントローラーで:
$profileAskFormResponse = $this->forward('MyBundle:Profile:profileAskForm', array(
'user' => $user,
));
if ($profileAskFormResponse->isRedirection())
return $profileAskFormResponse;
return $this->render(MyBundle:Single:index.html.twig', array(
'myStuff' => $myStuff,
'profileAskForm' => $profileAskFormResponse,
));
そして小枝で:
{{ profileAskForm.content|raw }}
お問い合わせフォームを処理するために必要な各コントローラーでこのコードを使用しています。これを行う簡単な方法はありますか?私の最初のアイデアは、小枝でこの種のことをすることでした:
{% render 'MyBundle:Profile:profileAskForm' with {request: app.request, user: user} %}
しかし、フォーム送信後にそこからリダイレクトできませんでした。ポイントは、簡単で迅速な呼び出し方法があるかどうかです (たとえば、
小枝から)私の連絡先フォームのようなこの種のコンポーネント、いくつかのものをレンダリングするだけでなく、いくつかのものを持っているコンポーネント
その中のアプリケーションロジック。そんなコンポーネントを、どこにでも簡単に置けるブリックの魔女として使っていただけたら嬉しいです。