5

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

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

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

如果我产生错误(例如通过错误的路由),我会在分析器上检查闪存消息是否存在。

但是,如果我让重定向成功,则 Flash 消息会消失并且什么也不会显示。我在相应的 Twig 模板上有以下内容:

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

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

4

2 回答 2

7

首先,尝试使用该add方法而不是set在闪存包上。其次,试试这个适合我的模板:

{% for type, flashMessages in app.session.flashbag.all() %}
    {% for flashMessage in flashMessages %}
        <div class="alert alert-{{ type }}">
            {{ flashMessage|trans }}
        </div>
    {% endfor %}
{% endfor %}
于 2012-09-26T14:32:14.467 回答
6

我想到了。

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

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

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

于 2012-09-27T10:54:33.780 回答