【发布时间】:2020-03-02 04:58:47
【问题描述】:
我有这个网站,用户必须通过测试,最后他们才能访问测试结果。它们可以通过邮件发送,这将发送一封电子邮件,从数据库中删除记录,断开用户并将他重定向到登录页面。
断开连接并重定向到登录页面后,我想显示一条确认消息,例如“感谢您的参与!您的结果刚刚通过电子邮件发送”。
这是我在我的函数中写的,在我的控制器里面:
$request->getSession()->getFlashBag()->add('success', 'Thanks for your participation ! ...');
return $this->redirectToRoute('app_logout');
这就是我在我的视图中写的(login_page)
{% for message in app.flashes('success') %}
<div class="alert alert-warning alert-dismissible fade show" role="alert">
{{ message }}
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
{% endfor %}
我在没有断开用户连接的情况下尝试了这个,并且有效! 但是一旦我使用'app_logout'路由,就不可能显示flashbag,因为用户的会话是不可访问的。 我还不知道该怎么做,总结一下,这是我的方向:
(VIEW) 显示测试结果-> (CONTROLLER) 发送邮件/添加 flashbag/重定向到 app_logout 的功能 ->(?) app_logout 断开用户并重新注册到-> (VIEW) 我要显示我的登录页面闪光灯包
有人知道可以做什么吗?
【问题讨论】:
-
@MichalS。你这是什么意思?
-
IMO 对您问题的回答在这里stackoverflow.com/questions/41062805/…
-
@MichalS。谢谢您,两者都提供的解决方案非常有趣!你认为我可以适应我的问题吗?因为我不想在每次用户注销时都显示一条消息,而只是在我向他发送邮件后断开用户连接时才显示消息
-
当然 - 只需在您自己的处理程序中定义条件 :) 可能您将不得不编写一些服务来检查这种情况并“瞧”!