CakePHP: добавление значений по умолчанию к маршрутизатору во время выполнения - PullRequest
0 голосов
/ 23 июня 2011

Я немного растерялся с маршрутами CakePHP (1.3), когда речь идет о значениях по умолчанию и постоянных параметрах.

Мой текущий проект читает текущий язык из первого параметра URL ( example.com / ru / pagename /) и, если язык недоступен, он пытается угадать язык из сессии или куки, и если это не удается, возвращается к конфигурации по умолчанию.

После этого все URL, сгенерированные с помощью Router::url(), должны содержать параметр языка (то есть язык по умолчанию, если он не переопределен в аргументах). Проблема в том, что я не знаю чистого способа добиться этого. Есть ли один или мне нужно добавить свои собственные хаки? Что было бы лучшим местом для применения этих хаков, не затрагивая все другие маршруты?

Возможно, я мог бы решить эту конкретную проблему с помощью перенаправлений, которые заполняют пропущенные параметры, но я хотел бы узнать больше о маршрутизации в CakePHP, и я чувствую, что эти значения по умолчанию могут быть полезны и в других приложениях.

Ответы [ 2 ]

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

Вы можете использовать опцию «сохраняться» при создании маршрута: http://api13.cakephp.org/class/router#method-Routerconnect

0 голосов
/ 21 февраля 2012

Я решил проблему, сделав необязательный параметр языка и проверив его в appController beforeRender(). Если код языка отсутствует, браузер будет перенаправлен на текущий URL с добавленным кодом языка.

...