Symfony2 app.session。“flash”使用和清理

时间:2012-09-05 18:22:13

标签: php symfony session-variables symfony-2.1

我在表单中使用Symfony2 flash消息在表单提交后构建不同的视图。 到目前为止,所有内容都符合预期,但现在我希望在呈现此表单响应视图后,session.flash消息(仅在一种形式中)仍然存在。

{% if app.session.hasFlash('something') %}
   ...some code...
{% endif %}

我已经对此进行了研究,但除了official reference除了删除此闪存的功能之外,我还没有找到任何信息。

有人知道哪一个是最好的做法吗?在某个特定的地方(控制器或事件)删除此闪存,或者可能存在一些限制闪存消息生命周期的选项。

1 个答案:

答案 0 :(得分:2)

由于你只是检查这个,但没有打电话 - 闪存仍将被安置在会话中。要触发会话删除 - 您必须在其上调用getFlash()

目前,调用getFlash()removeFlash()之间的区别仅在于第一种方法返回值。

对于您的特定情况,我建议您使用第二个参数调用getFlash(),如果请求的索引不存在,则确定默认返回值。

{% if app.session.getFlash('something', false) %}
   ...some code...
{% endif %}