CakePHP路由到控制器和页面

时间:2014-04-06 05:20:38

标签: cakephp-2.0 cakephp-routing

是否可以在同一个网址中识别控制器和网页名称

Router::connect('/:controller/'); Router::connect('/:pagename/', array('controller' => 'home','action'=>'index'));

www.example.com/controller 以便控制器进入:controller / index

www.example.com/pagename 这样页面就转到了home / index

2 个答案:

答案 0 :(得分:0)

真正令人困惑的是你真正想要的东西。如果网址以:controller结尾,例如www.example.com/posts,则通常会映射index。现在,如果网址以pagename结尾,则表示操作,例如www.example.com/mypage,您可以将其映射为 -

Router::connect('/mypage', array('controller' => 'homes', 'action' => 'index'));

因此,当用户浏览www.example.com/mypage时,它将映射到HomesController和索引操作。

答案 1 :(得分:0)

尝试使用以下代码进行页面名称:

Router::connect('/:slug', array('controller' => 'home', 'action' => 'index'));

更新1

如果您想将 www.example.com/user 视为 www.example.com/users ,那么您需要添加以下内容,因为CakePHP控制器名称根据CakePHP命名约定是复数:

Router::connect('/user/:action/*', array('controller' => 'users'));

更新2

Router::connect(':slug')覆盖所有默认路由。因此,您需要使用custom routing class,如:

App::uses('SlugRoute', 'Routing/Route');

Router::connect(
    '/:slug',
    array('controller' => 'home', 'action' => 'index'),
    array('routeClass' => 'SlugRoute')
);