0

フォームの送信後にさまざまなビューを構築するために、フォームでSymfony2フラッシュメッセージを使用しています。これまでのところすべてが期待どおりですが、このフォーム応答ビューがレンダリングされた後、session.flashメッセージ(1つのフォームのみ)がまだ生きていないことを望んでいます。

{% if app.session.hasFlash('something') %}
   ...some code...
{% endif %}

それについて調べてみましたが、このフラッシュを削除する機能を備えた公式リファレンスを除けば、何の情報も見つかりませんでした。

誰かがそれを行うためのベストプラクティスを知っていますか?このフラッシュを特定の場所(コントローラーまたはイベントなど)で削除するか、フラッシュメッセージの有効期間を制限するオプションが存在する可能性があります。

4

1 に答える 1

2

これをチェックしているだけで、呼び出していないので、フラッシュはまだセッションに格納されます。セッションの削除をトリガーするにはgetFlash()、それを呼び出す必要があります。

getFlash()現在、との呼び出しの違いはremoveFlash()、最初のメソッドが値を返すことだけです。

特定のケースでは、2番目の引数を指定してgetFlash()を呼び出すことをお勧めします。これにより、要求されたインデックスが存在しない場合のデフォルトの戻り値が決定されます。

{% if app.session.getFlash('something', false) %}
   ...some code...
{% endif %}
于 2012-09-05T20:11:26.390 に答える