[英]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.