我使用以下代码在控制器中设置了一条闪存消息:
$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 %}
它完美地工作。我宁愿不在这里使用循环,因为我要么只会收到一条消息,要么不会。
有没有一种解决方案,我可以检查是否存在单个闪存消息并在存在时显示它?还是我陷入了无用的循环?