Symfony,如何创建持久性Flash消息

时间:2016-06-28 09:21:14

标签: php symfony

我想显示一条在看到后不会被删除的flash消息。

例如:

  • 您的电子邮件地址未经过验证。请点击电子邮件中的链接... “必须先显示该链接,直到用户点击验证链接。
  • 查看新功能...... 点击X
  • 即可解除此功能

这样做的最佳方法是什么?我应该创建一个db表并在任何页面视图中读取它(如果是这样,我如何将结果传递给任何控制器,以及基本树枝布局?),还是有更好的东西?

2 个答案:

答案 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 %}