使用两个控制器的 cakePHP 路由
cakePHP Routing using two controllers
我用过cakePHP框架。我对 cakephp 中的路由有疑问。
我有两个控制器 "Admins" 和 "Users"。
我在 "Users" 控制器中为 "Admins" 控制器编写了一些方法。请参阅下面的示例。
class UsersController {
public function admin_index() {
my_code
}
}
class AdminsController {
My methods
}
根据 cakephp 路由规则,如果我想使用来自管理控制器的 admin_index 方法而不是使用下面的方法 URL :
site_url/admin/users/index
我想从上面删除 admin 关键字 URL。
我在 google 上搜索了很多,但我没有找到任何合适的解决方案。
在此先感谢您对我的帮助。
如果您需要使用来自 AdminsController 的 admin_index,那么您的 url 应该是 site_url/admin/admins/index
还要检查你 core.php 文件中的这一行:
https://github.com/cakephp/cakephp/blob/2.5/app/Config/core.php#L152
如果您需要对 AdminsController 中的 admin_index 方法使用 site_url/admin/users/index
,那么我宁愿禁用核心文件中的路由并重新编写路由。
请也阅读这篇文章CakePHP - Routing Using 'admin_' Prefix。可能会有帮助
我找到了解决方案。
路由器连接中的用户前缀
Router::connect('/:controller/:action/*', array('prefix' => 'admin', 'admin' => true, 'controller' => 'admins'));
如果你想在你的参数上添加一个条件,比如(':action'是'addUser':在这个例子中,这个路由器只在它的动作是'addUser'时起作用)而不是使用下面的代码
Router::connect('/:controller/:action/*', array('prefix' => 'admin', 'admin' => true, 'controller' => 'admins'),
array('action'=>'index|edit'));
我用过cakePHP框架。我对 cakephp 中的路由有疑问。
我有两个控制器 "Admins" 和 "Users"。
我在 "Users" 控制器中为 "Admins" 控制器编写了一些方法。请参阅下面的示例。
class UsersController {
public function admin_index() {
my_code
}
}
class AdminsController {
My methods
}
根据 cakephp 路由规则,如果我想使用来自管理控制器的 admin_index 方法而不是使用下面的方法 URL :
site_url/admin/users/index
我想从上面删除 admin 关键字 URL。
我在 google 上搜索了很多,但我没有找到任何合适的解决方案。
在此先感谢您对我的帮助。
如果您需要使用来自 AdminsController 的 admin_index,那么您的 url 应该是 site_url/admin/admins/index
还要检查你 core.php 文件中的这一行:
https://github.com/cakephp/cakephp/blob/2.5/app/Config/core.php#L152
如果您需要对 AdminsController 中的 admin_index 方法使用 site_url/admin/users/index
,那么我宁愿禁用核心文件中的路由并重新编写路由。
请也阅读这篇文章CakePHP - Routing Using 'admin_' Prefix。可能会有帮助
我找到了解决方案。
路由器连接中的用户前缀
Router::connect('/:controller/:action/*', array('prefix' => 'admin', 'admin' => true, 'controller' => 'admins'));
如果你想在你的参数上添加一个条件,比如(':action'是'addUser':在这个例子中,这个路由器只在它的动作是'addUser'时起作用)而不是使用下面的代码
Router::connect('/:controller/:action/*', array('prefix' => 'admin', 'admin' => true, 'controller' => 'admins'),
array('action'=>'index|edit'));