繁体   English   中英

重定向后未设置Flash消息

[英]Flash message is not set after redirect

我正在尝试设置一条Flash消息,如果我在方法内渲染模板,则该消息工作正常,如下所示:

return $this->render('login/forgotten_password.html.twig', [
    'form' => $form->createView(),
]);

但是,如果我返回RedirectResponse ,则即使我重定向到完全相同的方法,也不会设置Flash消息:

return new RedirectResponse($this->generateUrl('forgotten_password', []));

为什么这不起作用,如何使它起作用?

将会话用于显示Flash消息。

并在产生输出后取消会话设置,并编写隐藏flashmessage div的javascript。

<?php
if(isset($_SESSION['SUCCESS']) && !empty($_SESSION['SUCCESS'])){
    if($_SESSION['SUCCESS']=='TRUE'){
        $alert_class = 'alert-success';
    }else{
        $alert_class = 'alert-danger';
    }
    ?>
    <div class="row">
        <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
            <div class="alert <?php echo $alert_class?>" role="alert">
                <?php
                if(isset($_SESSION['MESSAGE']) && !empty($_SESSION['MESSAGE'])){
                    echo $_SESSION['MESSAGE'];
                }
                unset($_SESSION['SUCCESS']);
                unset($_SESSION['MESSAGE']);
                ?>
            </div>
        </div>
    </div>
<?php
}
?>

jQuery隐藏Flash消息

setTimeout(function() {
    $('.alert').each(function () {
       if($(this).attr('role')=='alert'){
           $(this).fadeOut();
       }
    });
}, 5000);

您使用的是哪个版本的symfony?

我们正在2.6.1上运行,如果您在重定向之前进行了如下设置,它将可以正常工作:

$request->getSession()->getFlashBag()->add("success", "Test");

这应该在您的控制器上工作

$this->get('session')->getFlashBag()->add('info', 'Test');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM