是否可以在同一个网址中识别控制器和网页名称
Router::connect('/:controller/');
Router::connect('/:pagename/', array('controller' => 'home','action'=>'index'));
www.example.com/controller 以便控制器进入:controller / index
www.example.com/pagename 这样页面就转到了home / index
答案 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')
);