在我的控制器中,我使用此代码添加了一条flash消息并重定向:
$this->get('session')->getFlashBag()->add('success', 'Foo Message');
return $this->redirect($this->generateUrl('list_route'));
我使用以下代码在模板中显示消息:
<div id="flashes" class="row-fluid">
{% for type, flashMessages in app.session.flashbag.all() %}
{% for flashMessage in flashMessages %}
<div class="alert alert-{{ type }}">
<button type="button" class="close" data-dismiss="alert">×</button>
{{ flashMessage|raw }}
</div>
{% endfor %}
{% endfor %}
</div>
在我从symfony 2.3升级到2.4.1之前,这一功能完美无缺。
没有错误,我的日志没有错。消息根本不显示,app.session.flashbag
为空。
闪光袋有什么变化吗?如何解决?
答案 0 :(得分:2)
你偶然使用Liip\CacheControlBundle
吗?我有完全相同的问题,经过一些挖掘,我发现这个捆绑清除了flashbag。
config.yml
中查看是否有flash_message_listner: true
行,是否有转到false
,事情应该再次发挥作用。
我这样做是为了回答,因为我没有足够的代表发表评论。我想Liip\CacheControlBundle
也会在之前的版本中做到这一点,但我想我会试一试,因为它对我有用。
我没有获得标准的分发包,而是获得了REST发行版,它附带了这个包,默认情况下包含flash_message_listner: true
。只是翻过来,解决了我的问题。