我在表单中使用Symfony2 flash消息在表单提交后构建不同的视图。 到目前为止,所有内容都符合预期,但现在我希望在呈现此表单响应视图后,session.flash消息(仅在一种形式中)仍然存在。
{% if app.session.hasFlash('something') %}
...some code...
{% endif %}
我已经对此进行了研究,但除了official reference除了删除此闪存的功能之外,我还没有找到任何信息。
有人知道哪一个是最好的做法吗?在某个特定的地方(控制器或事件)删除此闪存,或者可能存在一些限制闪存消息生命周期的选项。
答案 0 :(得分:2)
由于你只是检查这个,但没有打电话 - 闪存仍将被安置在会话中。要触发会话删除 - 您必须在其上调用getFlash()
。
目前,调用getFlash()
和removeFlash()
之间的区别仅在于第一种方法返回值。
对于您的特定情况,我建议您使用第二个参数调用getFlash(),如果请求的索引不存在,则确定默认返回值。
{% if app.session.getFlash('something', false) %}
...some code...
{% endif %}