Я установил флэш-сообщение в контроллере со следующим кодом:
$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 %}
Проблема в том, что, несмотря на то, что в документации API указано, что get
возвращает строку, я получаю исключение преобразования массива в строку. Если я изменю код в шаблоне на:
{% for flashMessage in app.session.flashbag.get('success') %}
<div id="flash">
{{ flashMessage }}
</div>
{% endfor %}
Это работает отлично. Я бы предпочел не использовать здесь цикл, так как у меня либо будет одно сообщение, либо нет.
Есть ли решение, в котором я могу просто проверить наличие одного флэш-сообщения и отобразить его, если оно есть? Или я застрял с бесполезным циклом?