Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony 4:注销后显示flashbag_Php_Symfony_Twig - Fatal编程技术网

Php Symfony 4:注销后显示flashbag

Php Symfony 4:注销后显示flashbag,php,symfony,twig,Php,Symfony,Twig,我有一个网站,在那里用户必须通过测试,最终他们可以访问测试结果。它们可以通过邮件发送,这将发送一封电子邮件,从数据库中删除记录,断开用户连接并将其重定向到登录页面 一旦断开连接并重定向到登录页面,我想显示一条确认消息,如“感谢您的参与!您的结果刚刚通过电子邮件发送” 这是我在我的函数中写的,在我的控制器中: $request->getSession()->getFlashBag()->添加('success','Thank your participation!…); 返回$this->redi

我有一个网站,在那里用户必须通过测试,最终他们可以访问测试结果。它们可以通过邮件发送,这将发送一封电子邮件,从数据库中删除记录,断开用户连接并将其重定向到登录页面

一旦断开连接并重定向到登录页面,我想显示一条确认消息,如“感谢您的参与!您的结果刚刚通过电子邮件发送”

这是我在我的函数中写的,在我的控制器中:

$request->getSession()->getFlashBag()->添加('success','Thank your participation!…);
返回$this->redirectToRoute('app_logout');
这是我在我的视图中写的(登录页面)

{%用于app.flash中的消息('success')%}
{{message}}
&时代;
{%endfor%}
我在没有断开用户连接的情况下尝试了这一点,效果很好! 但一旦我使用“app_logout”路由,就不可能显示flashbag,因为用户的会话无法访问。 我还不知道该做什么,总之,这是我的方向:

(查看)显示测试结果->(控制器)发送邮件/添加flashbag/重定向至app_logout->(?)app_logout断开用户连接并重新定向至->(查看)登录页面,我要在其中显示我的flashbag


有人对这个有想法吗​​可以做什么?

最干净的解决方案可能是定制,它检查数据库中发送的电子邮件信息,并在适用的情况下为新会话设置flashbag。

@MichalS。你这是什么意思?我对你问题的回答是这里可能有@MichalS的副本。谢谢你,这两个解决方案都非常有趣!你认为我能适应我的问题吗?因为我不想每次用户注销时都显示消息,但只有当我在向用户发送邮件后断开连接时才显示消息。当然,只需在您自己的处理程序中定义条件:)您可能必须编写一些服务来检查此场景并“瞧”!谢谢但我仍然有同样的问题,注销怎么知道用户id?以检查是否发送了正确的电子邮件
{% 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">&times;</span>
        </button>
    </div>
{% endfor %}