如何解决Cakephp 管理员前缀路由
在我的 Cakephp 应用程序中,我希望有以下网址:
admin/users/:action
我希望 UsersController 位于名为“admin”的 Controllers 子文件夹中。我知道如何使用 Cake 3 和 4 实现这一点,但在这种情况下,我正在使用一个遗留的 Cake2 项目。我已经阅读了 Cake2 书中关于路由器的章节,但它似乎通过使用单个主控制器在控制器操作前加上“admin”来解决这个问题。
这不是我需要的,我正在寻找以下内容:
Controllers
- [Admin]
- UsersController
- UsersContrller
即 - 两个控制器和子文件夹。
我可以按如下方式匹配路由,但我无法弄清楚要使用的参数:
Router::connect(
'/integrations/foo/:controller/:action/*',[]
);
其中“integrations”是我的插件,“foo”是子文件夹。我怀疑这在 Cake2 中是否真的可行。我发现 2013 年的一个旧问题说不再支持控制器的子目录,但我不确定这是否是一个有效的陈述。
CakePHP controllers and models in subdirectory
这可能需要通过服务器级别的重定向来完成吗?
解决方法
在您的 routes.php 中,执行以下操作:
Router::connect('/admin',array('controller' => 'users','action' => 'login','admin' => true));
例如!
这会将您重定向到:yoursite.com/admin
通过这种方式,您可以使用 admin 文件夹中的控制器正常遵循您的结构。
在我给出的例子中,它看起来像这样:admin/users/login.php
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。