Есть ли способ изменить разделитель переменных маршрута в Zend Framework? - PullRequest
2 голосов
/ 16 марта 2011

Я бы хотел изменить способ URL-адресов, которые Zend Framework генерирует из этого:

$routeString = '/section/:sectionName';
$route = new Zend_Controller_Router_Route(routeString, array( etc, etc... );

... к этому ...

$routeString = '/section_:sectionName';
$route = new Zend_Controller_Router_Route(routeString, array( etc, etc... );

Обратите внимание, что во втором варианте средняя косая черта в $routeString заменяется подчеркиванием.

Когда я делаю это изменение, маршрутизатор перестает распознавать маршрут и переменные. Мне кажется довольно странным, что фреймворк навязывает такие вещи, поэтому я уверен, что что-то упустил в документах.

Ура!

1 Ответ

4 голосов
/ 16 марта 2011

Я думаю, вы могли бы сделать это, используя Zend_Controller_Router_Route_Regex .В качестве примера я приведу настройку вашего маршрута в application.ini:

resources.router.routes.section.type = "Zend_Controller_Router_Route_Regex" 
resources.router.routes.section.route = "section_(\d+)"
resources.router.routes.section.defaults.module = yourmodule
resources.router.routes.section.defaults.controller = yourcontroller
resources.router.routes.section.defaults.action = youraction
resources.router.routes.section.map.1 = "sectionName"
resources.router.routes.section.reverse = "section/%d"

Надеюсь, это поможет вам или, по крайней мере, укажет вам правильное направление.

...