按所需用户角色显示 flashbag 消息

Show flashbag message by required user role

当我通过防火墙保护我的 Symfony2 项目的某个区域时,人们被重定向到登录页面。如何在该登录页面上显示动态消息,告知用户所需的用户角色?

例如我的项目有四个不同的页面

如果用户尝试访问/beta,登录页面上方应有信息

This area is restricted to beta users.

... 因此 /admin/user。有没有办法全局设置此消息(无需在每个控制器操作上单独设置)?

您可以通过实施 AccessDeniedHandlerInterface.

来实现

handle方法中,您可以检查请求路径并添加适当的闪现消息。

您必须在 security.yml:

中注册您的 AccessDeniedHandler 服务
security:
    firewalls:
        main:
            access_denied_handler: my.access_denied_handler_service_name