我第一次尝试在 Symfony2 应用程序中设置并显示一条 Flash 消息。正在设置的闪烁消息在第一次显示后不会被清除。
我在控制器操作中设置了一条闪光消息:
public function startAction()
{
if (!$this->hasError()) {
$this->get('session')->setFlash('test_start_error', '');
return $this->redirect($this->generateUrl('app', array(), true));
}
}
如果设置了相关的 flash 键,我会在相应的视图中显示错误通知:
{% if app.session.hasFlash('test_start_error') %}
error content here
{% endif %}
在正确的错误条件下,控制器设置闪烁消息,并在视图中呈现相关的错误内容。
一旦显示,flash 消息会在请求后再次显示。通过检查相关会话数据可以var_dump($this->get('session')->getFlashBag());
发现 flash 内容仍保留在会话中。
我的印象是从会话中删除了一条已显示过一次的 Flash 消息。这不会发生在我身上。
很明显我做错了什么——这是什么?