Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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 2:登录/注销时的Flash消息_Php_Symfony - Fatal编程技术网

Php Symfony 2:登录/注销时的Flash消息

Php Symfony 2:登录/注销时的Flash消息,php,symfony,Php,Symfony,使用Symfony 2.6,我正在寻找在我的应用程序中添加登录/注销flash消息的最佳方法。我明确表示,在每种情况下,我都不想修改响应(我不需要) 以下是我的解决方案: 登录: 1。第一种解决方案: 我可以使用事件或事件。在这两种情况下,我都可以实现一个侦听器,在事件发生时添加一条flash消息 2。第二种解决方案: 我可以创建自己的LoginSuccessHandler来实现AuthenticationSuccessHandlerInterface,但在这种情况下,我必须返回响应。此外,我不

使用Symfony 2.6,我正在寻找在我的应用程序中添加登录/注销flash消息的最佳方法。我明确表示,在每种情况下,我都不想修改响应(我不需要)

以下是我的解决方案:

登录:

1。第一种解决方案:

我可以使用事件或事件。在这两种情况下,我都可以实现一个侦听器,在事件发生时添加一条flash消息

2。第二种解决方案:

我可以创建自己的LoginSuccessHandler来实现AuthenticationSuccessHandlerInterface,但在这种情况下,我必须返回响应。此外,我不熟悉这个方法,我害怕覆盖默认的成功处理程序。对吗

注销:

我可以创建一个LogoutListener来实现LogoutHandlerInterface。在这种情况下,我也害怕覆盖defaut注销处理程序

感谢您的建议。

使用已实施的登录/注销逻辑等
因此,您将有可能在登录检查重定向上显示错误:

要执行此操作,必须将错误返回到细枝

$session->getFlashBag()->add('error', 'Error message');
在细枝中,如果会话包含任何错误,则需要这样一个块来显示错误:

 {% block flashes %}
    {% if app.session.flashbag.peekAll|length > 0 %}
        {{ session_flash() }}
    {% endif %}
 {% endblock flashes %}

谢谢你,但我不明白你的建议。我有效地使用了FOSUserBundle。根据不同的事件,这个包中实际上有七条预定义的flash消息。你能解释一下你在应用程序的什么地方添加了flash消息吗?我的目的只是告诉用户他现在已连接或断开连接。所有flash消息都显示在我的布局中。您可以添加一个服务,该服务将挂接到-add中,在onImplicitLogin成功后添加一个flash,无论用户走到哪里,该flash消息都将在登录后显示。必须有一个用于注销,但我不确定它在文档中的什么位置。您可以为传递事件的控制器连接一个侦听器。@George我已经创建了一个额外的侦听器,在成功登录后添加一条flash消息(使用security.interactive\u登录事件,但应该使用fos\u user.security.implicit\u登录事件)。它很好用。我认为不存在注销事件。甚至在symfony 2中。我按照文档中的描述钩住控制器,但用于重定向响应。