如何制作与“archive”,“archive / 2013”​​和“archive / 2013/02”匹配的单一路由规则?

时间:2014-03-17 22:27:50

标签: cakephp

我知道这三条路线可以压缩到一条路线,其中:年和月是可选参数,但到目前为止,我所尝试的所有内容只是将我重定向到索引,如果确切的参数不是'给定。例如," www.domain.com/blog/archive /"符合第一条规则,但是" www.domain.com/blog/archive/2013"正在进入索引规则,直到我添加了另一个特定的规则来匹配它。

Router::connect("/$slug/archive", array(
    'plugin' => 'blog',
    'controller' => 'blog_posts',
    'action' => 'archive'
)
);

Router::connect("/$slug/archive/:year", array(
    'plugin' => 'blog',
    'controller' => 'blog_posts',
    'action' => 'archive'
), 
array('pass' => array('year') )
);


Router::connect("/$slug/archive/:year/:month", array(
    'plugin' => 'blog',
    'controller' => 'blog_posts',
    'action' => 'archive'
), 
array('pass' => array('year', 'month') )
);

Router::connect("/$slug/*", array(
'plugin' => 'blog',
'controller' => 'blog_posts',
'action' => 'index'
));

1 个答案:

答案 0 :(得分:0)

要制作单个路由规则,请使用以下与“archive”,“archive / 2013”​​和“archive / 2013/02”匹配的代码

    Router::connect("/$slug/archive/*", array(
      'plugin' => 'blog',
      'controller' => 'blog_posts',
      'action' => 'archive'
      )
    );