我在yml中配置了两个/ alpha和/ beta路由。在alphaAction中,通知被放置在flashbag中并发生重定向。在betaAction中,读取flashbag中的通知。
有时候我在浏览器中尝试/ alpha时会收到2条通知,有时我会收到一条通知。
有人可以解释发生了什么,我做错了什么。
public function alphaAction()
{
$this->get('session')->getFlashBag()->add("notice",mt_rand());
return $this->redirectToRoute("beta");
}
public function betaAction()
{
$notices= $this->get('session')->getFlashBag()->get('notice');
return new Response(implode($notices,", "));
}
答案 0 :(得分:0)
使用add
方法,我可以重现您描述的问题。可以使用set
方法而非add
(或setFlash
)方法修复此问题。
public function alphaAction()
{
$this->get('session')->getFlashBag()->set("notice",mt_rand());
return $this->redirectToRoute("beta");
}
public function betaAction()
{
$notices= $this->get('session')->getFlashBag()->get('notice');
return new Response(implode($notices,", "));
}