簡體   English   中英

如何根據Symfony中的角色為兩個控制器提供一個URL?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM