【问题标题】:Routing in CakePHP 2.6.9CakePHP 2.6.9 中的路由
【发布时间】:2015-10-26 08:01:57
【问题描述】:

我使用的是 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 中未定义操作 admins

证明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,其余网址将默认使用。有什么想法吗?

【问题讨论】:

    标签: cakephp routing cakephp-2.6 cakephp-2.x


    【解决方案1】:

    这会是你想要的。

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

    大部分 cakephp url 类似于 /controller/action/id。您的路由模板/:action/* 告诉您没有在url 中使用controller names,而是仅使用action names,例如/detail/id/admins/id,并且所有操作都在Frontends 控制器中。从错误信息可以看出,它试图在Frontends 控制器中找到admins 动作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 2011-08-07
      • 2012-12-03
      相关资源
      最近更新 更多