有沒有一種方法來嵌套控制器或至少看起來像那樣,就像codeigniter例如。嵌套控制器
/管理/控制器
其中admin是內部控制器forlder一個目錄。
/admin/users_controllers.php你把所有東西放在那裏。
我知道我可以通過路由實現這一點,但只是好奇,如果我可以做到這一點的應用程序的體系結構。
有沒有一種方法來嵌套控制器或至少看起來像那樣,就像codeigniter例如。嵌套控制器
/管理/控制器
其中admin是內部控制器forlder一個目錄。
/admin/users_controllers.php你把所有東西放在那裏。
我知道我可以通過路由實現這一點,但只是好奇,如果我可以做到這一點的應用程序的體系結構。
我認爲組織這種方式的東西混合了控制器和認證邏輯。在CakePHP中,您的操作由控制器分組,並且控制器通常與模型對應。所以你將擁有用戶,帖子,產品或任何其他控制器。
然後,對於每個控制器,某些操作可能只對具有某些權限的用戶可用,例如管理員。您應該而不是創建一個單獨的控制器來區分特權級別,而是根據它們所採取的數據對您的操作進行分組。這是Auth
組件的任務,可能與其他組件(如Acl
)一起使用,以授予或拒絕訪問每個控制器中的單個操作。如您所知,您可以使用路由將admin
需要管理員權限的操作作爲前綴。這爲動作提供了一個單獨的入口點,但管理邏輯維生素的控制器是相同的。
所以你的問題的答案是:你不應該。這不是控制器的目的;控制器用於將相同對象上的動作分組,而不用於對需要不同訪問級別的動作進行分組。
短而清晰。謝謝。 – flakerimi 2011-03-12 12:40:54