Настройка маршрутов для именованных аргументов в CakePHP - PullRequest
5 голосов
/ 17 июля 2010

В моем приложении Cake у меня есть контроллер "complete_projects". Его действие index не принимает аргументов и перечисляет некоторые проекты. Различные страницы могут быть доступны example.com/completed_projects/index/page:23 и т. Д.

Я хочу, чтобы URL был таким:

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 Ответ

1 голос
/ 17 июля 2010
Router::connect('/portfolio/page:page_num',
    array('controller'=>'completed_projects', 'action'=>'index'),
    array('page_num'=>'[\d]+')
);

В вашем контроллере зайдите на page_num с помощью:

$this->params['page_num'];
...