我想显示一条在看到后不会被删除的flash消息。
例如:
这样做的最佳方法是什么?我应该创建一个db表并在任何页面视图中读取它(如果是这样,我如何将结果传递给任何控制器,以及基本树枝布局?),还是有更好的东西?
答案 0 :(得分:1)
Flash消息应在您检索后立即删除。
如果您的用户应该执行多项操作,并且您希望通过消息通知他们这样做。最好的方法是在用户表中添加列,其中所有任务都以false作为默认状态。如果状态为false
,则显示消息,直到用户完成任务。
当用户完成任务时,将其设为真。
如果要对任务执行大量操作,可以为所有任务创建单独的表。
通过广泛的任务,我的意思是你可能想要记录完成时的日期时间,你想要为每个任务显示的其他重要信息或描述。
Symfony的优势在于,当用户登录时,您拥有任务的所有状态以及用户的对象。所以对你来说也会更容易。
答案 1 :(得分:1)
您可以使用peek()方法检索邮件,同时将其保留在包中。
{% for flash_message in app.session.flashBag.peek('notice') %}
<div class="flash-notice">
{{ flash_message }}
</div>
{% endfor %}