[英]How to have one URL for two controllers depending of roles in Symfony?
我正在尝试在Symfony 2.7上创建我的WebSite。 我想要两个带有基本URL的“ home”:“ /”。 一个用于具有ROLE_USER(已连接)角色的用户,另一个用于具有IS_AUTHENTICATED_ANONYMOUSLY角色的用户。
我正在考虑一个URL调用两个控制器,而不是调用将根据权限显示第一个或第二个视图的同一个控制器(我认为这不是一个好习惯)。
有人知道怎么做吗?
我什至不知道我是否会采取良好的做法,因此,如果您引导我采用另一种方式,请放心,谢谢。
最好的祝福,
这是错误的方法,因为Symfony会首先尝试将您的路由与已配置的firewall
匹配,然后在进行身份验证后将检查正确的ROLE_USER
授权。
因为您想允许IS_AUTHENTICATED_ANONYMOUSLY
,所以应该在控制器或模板中检查ROLE_USER
。 您无法基于相同的URL进行检查。
在您的控制器中:
if ($this->get('security.authorization_checker')->isGranted('ROLE_USER')) {
// ...
}
在您的Twig模板中:
{% if is_granted('ROLE_USER') %}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.