CakePHP中命名参数的路由配置

时间:2010-07-17 07:54:07

标签: cakephp routing parameters pagination named

在我的Cake应用程序中,我有一个控制器“completed_projects”。它的索引操作不带参数,并列出了一些项目。可以访问不同的页面 example.com/completed_projects/index/page:23等。

我想让网址像这样:

example.com/portfolio/page23

显然我需要为此制定一些路线。我尝试了很多像:

Router::connect('/portfolio/page:num', array('controller' => 'completed_projects', 'action' => 'index'), array('pass'=>'page:num', 'num'=>'[0-9]+'));

还有:

Router::connect('/portfolio/:page:num', array('controller' => 'completed_projects', 'action' => 'index'), array('named'=>'num', 'page'=>'page', 'num'=>'[0-9]+'));

我也一次又一次地尝试修改它们,但没有一个能很好地运行。

我正在使用CakePHP 1.3。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

Router::connect('/portfolio/page:page_num',
    array('controller'=>'completed_projects', 'action'=>'index'),
    array('page_num'=>'[\d]+')
);

在您的控制器中,访问page_num:

$this->params['page_num'];