Есть ли способ изменить разделитель переменных маршрута в Zend Framework?

Я хотел бы изменить способ 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 ответ

Решение

Я думаю, что вы могли бы сделать это с помощью 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"

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

Другие вопросы по тегам