3

我已经在 Stackoverflow 中阅读了很多关于这个主题的帖子,但我仍然没有成功。

我正在使用Symfony version 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'));
}

这里是我的 Twig 代码:

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

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

4

1 回答 1

1

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

关于你的问题 - 确保你get('notice')之前没有打电话。

于 2013-09-12T15:48:58.973 回答