Flash Message在Symfony 2.1中重定向时消失



我正在从Symfony 2.0迁移到Symfony 2.1。

我的控制器上有以下简单代码:

public function createEntidadeAction() {
$this->get('session')->getFlashBag()->set('error', 'message');
return $this->redirect($this->generateUrl('EntidadeBundle_index'));
}

如果我生成了一个错误(例如,通过传递一个错误的路由),我会在探查器上检查闪存消息是否存在。

然而,如果我让重定向成功,则闪烁消息将消失,并且不会显示任何内容。我在相应的Twig模板上有以下内容:

{% for flashMessage in app.session.flashbag.get('error') %}
<div class="flash-notice">
{{ flashMessage }}
</div>
{% endfor %}

我想不通。我错过了什么?Flash消息应该在第一次重定向后持续,不是吗?

首先,尝试在闪光灯袋上使用add方法,而不是set方法。第二,试试这个对我有用的模板:

{% for type, flashMessages in app.session.flashbag.all() %}
{% for flashMessage in flashMessages %}
<div class="alert alert-{{ type }}">
{{ flashMessage|trans }}
</div>
{% endfor %}
{% endfor %}

我想明白了。

由于会话问题,未显示Flash消息。

Symfony 2.1现在默认使用session.storage.native作为storage_id和handler_id。

请在此处查看此会话问题是如何解决的。

最新更新