CakePHP расширенная маршрутизация - PullRequest
2 голосов
/ 25 мая 2011

Как мне создать такие URL (английский по умолчанию):

Для действия index в контроллере категорий:

  • / category
  • / en/ Categories
  • / de / Categories
  • ...

для действия view в контроллере категорий:

  • // englishslug
  • / de / Categories / deutshslug

Ответы [ 2 ]

1 голос
/ 15 сентября 2011

В статье отсутствует полезная функция persist, доступная в Router :: connect () .
Который добавит параметр языка ко всем сгенерированным URL.

Пример маршрута:

Router::connect(
  '/:language/:controller',
  array(),
  array('language' => '[a-z]{2}', 'persist' => array('language'))
);
Router::connect('/:language/:controller/:action/*', array(), array('language' => '[a-z]{2}', 'persist' => array('language')));
0 голосов
/ 26 мая 2011

Это именно то, для чего созданы пользовательские маршруты в CakePHP.Вы можете определить свой собственный класс маршрутизатора, который обрабатывает всю эту логику для вас и смягчает все перед запуском через диспетчер.Недавно я сделал именно то, что вы ищете, ссылаясь на этот пост в блоге самого Марка Стори: http://mark -story.com / posts / view / using-custom-route-classes-in-cakephp

...