Session Symfony2 flashBag空阵列
我在Stackoverflow上读了很多关于这个话题的帖子,但还是没有成功 我正在使用Symfony 2.2.3版,目前我正在尝试在我的项目中使用flashbag messegaes,但由于某些原因,当我在我的Twig模板中收到一个空数组时 这是我的控制器代码: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
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中删除了。谢谢你们的帮助,伙计们!