路由器cakephp指向同样的行动

时间:2015-01-08 02:18:52

标签: php cakephp

我在cakephp下的路由方面遇到了一些问题 我的控制器中有两个动作 他们如下:

example.com/posts/show/show-by-day
example.com/posts/view/slug-post

我想要他们:

example.com/article/show-by-day.html
example.com/article/slug-post.html

所以我在配置文件下路由文件,我写道:

Router::connect('/article/:show_by_day', array('controller' => 'posts', 'action' => 'show'), array('pass' => array('show_by_day'))); 

Router::connect('/article/:slug', array('controller' => 'posts', 'action' => 'view'), array('pass' => array('slug'))); 
当我点击url example.com/article/show-by-day.html

时,它的工作正常

但是当我点击url example.com/article/slug-post.html时,它再次指向动作节目。

那我怎么解决呢? 非常感谢!

1 个答案:

答案 0 :(得分:0)

试试这个

Router::connect( '/article/show-by-day.html', 
    array(
        'controller' => 'posts',
        'action' => 'show'
    ),
    array(
        'pass' => array('show_by_day')
    )
);

Router::connect( '/article/slug-post.html', 
    array(
        'controller' => 'posts',
        'action' => 'view'
    ),
    array(
        'pass' => array('slug')
    )
);

说明: Router::connect的第一个参数是您要匹配的确切网址 - 在原始代码中,包含: - 参数化了网址而不是使用完全匹配。 Router::connect中的第二个和第三个参数是需要与所需参数一起调用的实际控制器/操作。