CakePHP中命名参数的路由配置

Muh*_*sir 5 parameters routing pagination cakephp named

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

我想让网址像这样:

example.com/portfolio/page23
Run Code Online (Sandbox Code Playgroud)

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

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

并且:

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

我也一次又一次地尝试修改它们,但没有一个能很好地工作.

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

Osc*_*car 1

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

在您的控制器中,使用以下命令访问 page_num:

$this->params['page_num'];
Run Code Online (Sandbox Code Playgroud)