2011-03-12 201 views
1

有沒有一種方法來嵌套控制器或至少看起來像那樣,就像codeigniter例如。嵌套控制器

/管理/控制器

其中admin是內部控制器forlder一個目錄。

/admin/users_controllers.php你把所有東西放在那裏。

我知道我可以通過路由實現這一點,但只是好奇,如果我可以做到這一點的應用程序的體系結構。

回答

2

我認爲組織這種方式的東西混合了控制器和認證邏輯。在CakePHP中,您的操作由控制器分組,並且控制器通常與模型對應。所以你將擁有用戶,帖子,產品或任何其他控制器。

然後,對於每個控制器,某些操作可能只對具有某些權限的用戶可用,例如管理員。您應該而不是創建一個單獨的控制器來區分特權級別,而是根據它們所採取的數據對您的操作進行分組。這是Auth組件的任務,可能與其他組件(如Acl)一起使用,以授予或拒絕訪問每個控制器中的單個操作。如您所知,您可以使用路由將admin需要管理員權限的操作作爲前綴。這爲動作提供了一個單獨的入口點,但管理邏輯維生素的控制器是相同的。

所以你的問題的答案是:你不應該。這不是控制器的目的;控制器用於將相同對象上的動作分組,而不用於對需要不同訪問級別的動作進行分組。

+0

短而清晰。謝謝。 – flakerimi 2011-03-12 12:40:54