1

FlashBagInterfaceを使用してフラッシュ メッセージを画面に出力しようとしていますが、うまくいきません。

コントローラーがメッセージを設定し、Twig テンプレートがそれを出力しようとしていることがわかるように、これが現在のセットアップです。実際には、このページには 1 つのメッセージしか表示しforないので、おそらくループは必要ありませんが、このコードが機能しない理由がわかりません。

エラーは発生しません。画面には何も出力されません。

また、dieコードを実行する$messageと、表示したいメッセージが表示されます。

私のコントローラーで:

$message = $this->get('translator')->trans('ContactThanksMessage');
$this->get('session')->getFlashBag()->set('contact_thanks', array('message' => $message));
return $this->redirect($this->generateUrl("ayrshireminis_contact"));

私のTwigテンプレートでは:

{% if app.session.flashbag.get('contact_thanks') %}
    {% for flashMessage in app.session.flashbag.get('contact_thanks') %}
       <p>{{ flashMessage }}</p>
    {% endfor %}
{% else %}
4

1 に答える 1

2

知っておく必要があるのは、フラッシュ メッセージを受け取ると、それは自動期限切れ戦略 (デフォルトの戦略) で削除されるということです。そのため、テンプレートifで.gethasget

于 2014-04-28T17:14:33.413 に答える