2011-03-12 126 views
1

有没有一种方法来嵌套控制器或至少看起来像那样,就像codeigniter例如。嵌套控制器

/管理/控制器

其中admin是内部控制器forlder一个目录。

/admin/users_controllers.php你把所有东西放在那里。

我知道我可以通过路由实现这一点,但只是好奇,如果我可以做到这一点的应用程序的体系结构。

回答

2

我认为组织这种方式的东西混合了控制器和认证逻辑。在CakePHP中,您的操作由控制器分组,并且控制器通常与模型对应。所以你将拥有用户,帖子,产品或任何其他控制器。

然后,对于每个控制器,某些操作可能只对具有某些权限的用户可用,例如管理员。您应该而不是创建一个单独的控制器来区分特权级别,而是根据它们所采取的数据对您的操作进行分组。这是Auth组件的任务,可能与其他组件(如Acl)一起使用,以授予或拒绝访问每个控制器中的单个操作。如您所知,您可以使用路由将admin需要管理员权限的操作作为前缀。这为动作提供了一个单独的入口点,但管理逻辑维生素的控制器是相同的。

所以你的问题的答案是:你不应该。这不是控制器的目的;控制器用于将相同对象上的动作分组,而不用于对需要不同访问级别的动作进行分组。

+0

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