0

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

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

www.example.com/controller 以便控制器转到 :controller/index

www.example.com/pagename 以便页面转到 home/index

4

2 回答 2

0

它真的让你真正想要什么感到困惑。如果一个 url 以它通常:controllerwww.example.com/postsmapindex动作结束。现在,如果 url 以 pagename 结尾,则表示操作,例如www.example.com/mypage,您可以将其映射为-

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

所以当用户浏览时www.example.com/mypage,它会映射到 HomesController 和 index 动作。

于 2014-04-06T05:45:44.133 回答
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')覆盖所有默认路由。因此,您需要使用自定义路由类,如下所示:

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

Router::connect(
    '/:slug',
    array('controller' => 'home', 'action' => 'index'),
    array('routeClass' => 'SlugRoute')
);
于 2014-04-06T06:45:26.800 回答