Symfony有一个消息条子(flash Message),它是把需要显示的临时消息放到session中,并在第一次访问后清除他。
举一个简单例子:
在控制器中我们如何创建一个flash message:
1 2 3 4 5 6 7 8 |
$this->addFlash( 'notice', '你想要放置的消息' ); // $this->addFlash 就相当于 $this->get('session')->getFlashBag()->add return $this->redirectToRoute(...); //跳转页面了 |
上面这段代码,就很容易的创建了消息,并跳转到其他页面。其他页面可以在twig模板中直接接收此信息并展示,代码如下:
1 2 3 4 5 |
{% for flash_message in app.session.flashBag.get('notice') %} <div class="flash-notice"> {{ flash_message }} </div> {% endfor %} |
来看看这里app.session.flashBag.get(‘notice’),并用dump在twig模板中输出一下
1 |
{{ dump(app.session.flashBag.get('notice')) }} |
会得到一个数组
1 2 3 |
array:1 [▼ 0 => "你想要放置的消息" ] |
所以我们要使用for去遍历它们,使其获得相应的消息并输出。
大神求教我symfony2 贼难
你应该学习,现在最新版本的symfony3