Вопрос

Я использую маршрут с именем хоста для захвата поддомена и использования в качестве категории.Затем я создаю цепочку маршрутов маршрутизатора для пар контроллер, действие и ключ / значение.

$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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top