次のコードを使用して、コントローラーにフラッシュメッセージを設定しました。
$this->get('session')->getFlashBag()->add('success', 'Message sent successfully');
そして私のテンプレートでは、それを表示する(しようとする)ために以下を使用します:
{% if app.session.flashbag.has('success') %}
<div id="flash">
{{ app.session.flashbag.get('success') }}
</div>
{% endif %}
get
問題は、文字列を返すと記載されているAPIドキュメントにもかかわらず、配列から文字列への変換例外が発生することです。テンプレートのコードを次のように変更した場合:
{% for flashMessage in app.session.flashbag.get('success') %}
<div id="flash">
{{ flashMessage }}
</div>
{% endfor %}
それは完璧に動作します。メッセージが1つだけになるかどうかはわからないので、ここではループを使用しません。
単一のフラッシュメッセージの存在を確認し、存在する場合はそれを表示できる解決策はありますか?それとも私は役に立たないループで立ち往生していますか?