I am setting a flash message in my controller when rendering a twig template. If there is a post action, I would like to redirect to the same page, but change the flash message.
if ($request->isMethod('POST')) {
...
...
$this->get('session')->getFlashBag()->clear(); // Does not work
$this->get('session')->getFlashBag()->all(); // Does not work
$request->getSession()->getFlashBag()->set('user-notice', $flash_message2);
return $this->redirect($request->headers->get('referer'));
}
$this->get('session')->getFlashBag()->set('user-notice', $flash_message1);
return $this->render(....
But the problem is that the displayed flash messages is the $flash_message1, and should be $flash_message2.
When trying to use add instead of set, I can see them both.
I tryied to use the Symfony2 clear()
and all()
functions: http://api.symfony.com/2.3/Symfony/Component/HttpFoundation/Session/Flash/FlashBagInterface.html but nothing changed.
Any idea? Thank you !!!
To clear all flash messages use the following code:
$this->get('session')->getFlashBag()->clear();