Session Symfony2 flashBag空阵列

Session Symfony2 flashBag空阵列,session,symfony,flash-message,Session,Symfony,Flash Message,我在Stackoverflow上读了很多关于这个话题的帖子,但还是没有成功 我正在使用Symfony 2.2.3版,目前我正在尝试在我的项目中使用flashbag messegaes,但由于某些原因,当我在我的Twig模板中收到一个空数组时 这是我的控制器代码: public function addProductAction($id) { $session = $this->container->get('session'); // *** Som

我在Stackoverflow上读了很多关于这个话题的帖子,但还是没有成功

我正在使用Symfony 2.2.3版,目前我正在尝试在我的项目中使用flashbag messegaes,但由于某些原因,当我在我的Twig模板中收到一个空数组时

这是我的控制器代码:

public function addProductAction($id) {
        $session = $this->container->get('session');

        // *** Some nive stuff here with session parameters **

        $session->set('products', $products);

        // Here it is my flashbag code sort like in symfony2 documentation

        $session->getFlashBag()->add('notice', 'Your changes were saved!');
        $session->save();

        return $this->redirect($this->getRequest()->headers->get('referer'));
}
这是我的树枝代码:

{% for flashMessage in app.session.flashbag.get('notice') %}
    <div class="flash-notice">
        {{ flashMessage }}
    </div>
{%else%}
    <div class="flash-notice">
        NO MESSAGES
    </div>
{% endfor %}
{%用于app.session.flashbag.get('notice')%%中的flashMessage
{{flashMessage}}
{%else%}
没有消息
{%endfor%}

我已经做到了,就像人们在网上的很多帖子中说的那样,但是没有运气。。。有什么想法吗?因为我想我只做了一个请求,我不明白为什么它不起作用……

可能在这个请求之前还有另一个
get('notice')
get
方法(来自
FlashBag
class)的工作方式是删除条目并返回它(因此它更像是“pop”而不是“get”)。如果您只想获得一个条目,而不想将其从闪存包中删除,请使用
peek
方法


关于你的问题-确保你之前没有调用
get('notice')

使用Sf2探查器检查你的会话包,在请求面板中,你应该能够检查包中的数据。尝试删除
$session->save()
你说得对,我想用FriendsOfSymfony登录一个模态,它正在执行
app.session.flashbag.all()
然后我所有的消息都从flasbag中删除了。谢谢你们的帮助,伙计们!