Есть ли способ изменить разделитель переменных маршрута в 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"
Надеюсь, что это поможет вам или, по крайней мере, укажет вам правильное направление.