如果flash消息没有';不存在,然后重定向到主页


If flash message doesn't exist then redirect to home page

场景:我将您重定向到消息页面,以显示来自FlashBag的">成功!"消息。你点击了F5,但却被踢出了主页,因为再也看不到消息了。会话已清除。如何实现此逻辑?

我想在呈现视图之前,我应该在消息控制器中有这样的东西:

if (flash message == doesn't exist anymore) { redirect to home page }

感谢

以下是我如何将用户从另一个控制器重定向到消息控制器:

$this->get('session')->getFlashBag()->add('message', 'Successful!');
return $this->redirect($this->generateUrl('message'));

路由器:

message:
    pattern:    /message
    defaults:   { _controller: SeHirBundle:Message:index }
    requirements:
        method: GET

消息控制器:

class MessageController extends Controller
{
    public function indexAction()
    {
        return $this->render('SeHirBundle:Default:message.html.twig');
    }
}

TWIG:

{% for flashMessage in app.session.flashbag.get('message') %}
        <div class="flash-notice">
            {{ flashMessage }}
        </div>
{% endfor %}

在MessageController中的indexAction((中,您只需要在方法的开头有以下条件:

if (!$this->get('session')->getFlashBag()->has('message')) { // Check if there is no Flash messages of type "message"
    return $this->redirect($this->generateUrl('homepage')); // Enter your homepage route here
}

FlashBag的has((方法允许您检查是否有任何FlashMessages仍未显示。