маршрутизация ключевых значений в Zend Framework Route
-
21-09-2019 - |
Вопрос
Я использую маршрут с именем хоста для захвата поддомена и использования в качестве категории.Затем я создаю цепочку маршрутов маршрутизатора для пар контроллер, действие и ключ / значение.
$hostnameRoute = new Zend_Controller_Router_Route_Hostname(
':customer.ddc.:domain',
array(
'customer' => ':customer'
)
);
$routerRoute = new Zend_Controller_Router_Route(
':controller/:action/*',
array(
'controller' => 'index',
'action' => 'index'
)
);
$chainedRoute = $hostnameRoute->chain($routerRoute);
$frontController->getRouter()->addRoute('default',$chainedRoute);
Я могу записать все, кроме пар ключ / значение в URI.Их добавление приводит к тому, что объект Params в Запросе не заполняется.
Это работает: http://category.mydomain.com/controller/action/
Это не: http://category.mydomain.com/controller/action/username/frank
Спасибо за любые предложения.
Решение 3
Действительно, существует ошибка, которая предотвращает сопоставление подстановочных знаков при объединении маршрутов в цепочки.Комментарии в описании ошибки были очень полезны в решении этой проблемы всего несколькими строками изменения кода.
framework.zend.com/issues/browse/ZF-6654
Другие советы
Попробуйте использовать без /*
.
$routerRoute = new Zend_Controller_Router_Route(
':controller/:action',
array(
'controller' => 'index',
'action' => 'index'
)
);
как в 12.5.2.Использование маршрутизатора описывается.
Предложенный патч у меня не сработал.Я адаптировал другой патч, найденный в другом месте на веб-сайте ZF, и, похоже, он работает хорошо: http://pastie.org/1815135