有没有办法让嵌套控制器或至少看起来像这样,例如在codeigniter中。
/管理/控制器
其中admin是Controllers forlder中的目录。
/admin/users_controllers.php你把所有东西放在那里。
我知道我可以通过路线实现这一目标,但只是好奇我能否为app的架构做到这一点。
答案 0 :(得分:2)
我认为以这种方式组织会混合控制器和身份验证逻辑。在CakePHP中,您的操作按控制器分组,控制器通常与模型对应。因此,您将拥有用户,帖子,产品或其他任何控制器。
然后,对于每个控制器,某些操作可能仅对具有特定权限的用户可用,例如管理员。您应该不创建一个单独的控制器来区分权限级别,而是根据它们操作的数据对您的操作进行分组。 Auth
组件的任务可能与其他组件(例如Acl
一起使用)授予或拒绝访问每个控制器中的单个操作。
如您所知,您可以使用路由为admin
{{1}}前需要管理员权限的操作添加前缀。这为操作提供了一个单独的入口点,但管理逻辑的控制器也是如此。
所以你的问题的答案是:你不应该。这不是控制器的用途;控制器用于对相同对象进行分组操作,而不是对需要不同访问级别的操作进行分组。