我正在尝试添加一个 Symfony2 登录事件侦听器,目标是在用户登录时设置数据库存储的区域设置,在每个请求上,并回退到没有用户登录的默认设置。我使用 FOSUserBundle,并试图让 security.interactive_login 事件起作用。我在互联网上找到了很多这样的代码:http: //dev.dbl-a.com/symfony-2-0/how-to-add-a-symfony2-login-event-listener/
我有自己的 FOSUserBundle 子包和 services.yml 中的这个实现:
my_user.security.interactive_login_listener:
class: My\UserBundle\EventListener\UserListener
arguments: [@security.context, @doctrine]
tags:
- { name: kernel.event_listener, event: security.interactive_login, method: setLocaleForAuthenticatedUser }
my_user.security.kernel_request_listener:
class: My\UserBundle\EventListener\UserListener
arguments: [@security.context, @doctrine]
tags:
- { name: kernel.event_listener, event: kernel.request, method: setLocaleForUnauthenticatedUser }
问题是,security.interactive_login 事件永远不会被触发,即使在记录时,即使在记录时也是如此。相反,我的 setLocaleForUnauthenticatedUser 总是被触发。我发现的每个代码示例似乎都能流畅运行,我的应用程序有什么问题?