我使用了cakePHP框架。我在cakephp中遇到了路由问题。
我有两个控制器“管理员”和“用户”。
我在“用户”控制器中为“管理员”控制器编写了一些方法。见下面的例子。
class UsersController {
public function admin_index() {
my_code
}
}
class AdminsController {
My methods
}
根据cakephp路由规则,如果我想使用admin控制器中的admin_index方法而不是使用以下URL:
site_url/admin/users/index
我想从上面的网址中删除admin关键字。
我在谷歌搜索了很多,但我没有得到任何适当的解决方案。
先谢谢你的帮助。
答案 0 :(得分:0)
如果您需要使用AdminsController中的admin_index,那么您的网址应为site_url/admin/admins/index
另请在core.php文件中检查此行:
https://github.com/cakephp/cakephp/blob/2.5/app/Config/core.php#L152
如果你需要在AdminsController中使用site_url/admin/users/index
作为admin_index方法,那么我宁愿从核心文件中禁用路由并再次写入路由。
请阅读此内容CakePHP - Routing Using 'admin_' Prefix。可能会有所帮助
答案 1 :(得分:0)
我找到了解决方案。
路由器连接中的用户前缀
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'));