[英]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.