0

我正在使用 CakePHP 2.6.9。

我想做以下事情:

  1. www.example.com/detail/10应参考controller => frontendsaction => detail
  2. www.example.com/admins/login应参考controller => adminsaction => login

我编辑routes.php如下:

Router::connect('/:action/*',
  array('controller' => 'frontends', 'action' =>'detail'));

但是当我尝试www.example.com/admins/login它显示以下错误:

操作管理员未在控制器 FrontendsController 中定义

证明www.example.com/admins/login指的是

Router::connect('/:action/*',
  array('controller' => 'frontends', 'action' =>'detail'));

路由。我想

Router::connect('/:action/*',
  array('controller' => 'frontends', 'action' =>'detail'));

将仅用于controller => frontends and action=>detail,其余 url 将默认工作。任何想法?

4

1 回答 1

3

这会想要你想要的。

Router::connect('/detail/*', array('controller' => 'Frontends', 'action' =>'detail'));

大多数 cakephp 网址都像/controller/action/id. 您的路由模板/:action/*告诉您没有controller names在 urls 中使用,而是仅使用action nameslike /detail/idand /admins/id,并且所有操作都在Frontends控制器中。您可以从错误消息中看到它试图在控制器中查找admins操作Frontends

于 2015-10-26T08:11:57.547 回答