2015-10-26 57 views
0

我正在使用CakePHP 2.6.9。在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它顯示了以下錯誤:

The action admins is not defined in controller 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的其餘部分將作爲默認值。任何想法?

回答

3

這將做你想要的。

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

大多數cakephp網址都像/controller/action/id。您的路線/:action/*的模板告訴您,您在網址中沒有使用controller names,而是僅使用action names,如/detail/id/admins/id,並且所有操作都在Frontends控制器中。您可以從錯誤消息中看到它試圖在Frontends conntroller中找到admins操作。