добавление маршрута к маршрутизатору в Zend Framework - PullRequest
0 голосов
/ 27 мая 2009

Я использую роутер переписывания модов.

Я пытаюсь добавить маршрут к маршрутизатору, который преобразует следующий URL:
baseurl / категория / AAA / mycontroller / myaction / param / value

будет:
Контроллер = mycontroller
действие = MyAction

- параметры--

категория = ааа
параметр = значение

Я использую следующее (не работает) в моем загрузчике, _front является frontController

$Router=$this->_front->getRouter();
$CategoryRoute = new Zend_Controller_Router_Route('category/:category/:controller/:action/*');
$Router->addRoute('category', $CategoryRoute);

Ошибка, которую я получаю - это исключение брошенного маршрутизатора, когда я использую помощник Zend_View :: url () (с указанием или без указания имени нового маршрута).
Исключение выдается только тогда, когда у меня есть baseurl / category / ....

Чего мне не хватает?

Что я пропустил:
Поскольку в URL была [категория], использовался маршрутизатор, определенный выше.
Когда я использовал хелпер url (), я не давал в нем никакого значения [category], следовательно, в ключе url parts-> fail не было значения для этого ключа. Дает значение по умолчанию, заставляет его работать.

Ответы [ 4 ]

6 голосов
/ 27 мая 2009

Вы должны включить / *, как предлагает solomongaby.

Если вы не предоставите все необходимые параметры (например, категорию, контроллер и действие), вам нужно будет указать значения по умолчанию.

Вы можете сделать это следующим образом:

$Router=$this->_front->getRouter();

$CategoryRoute = new Zend_Controller_Router_Route('category/:category/:controller/:action/*',
    array(
        'controller' => 'index',
        'action'     => 'index',
        'category'   => null
    )
);
$Router->addRoute('category', $CategoryRoute);
2 голосов
/ 27 мая 2009
$Router=$this->_front->getRouter();
$CategoryRoute = new Zend_Controller_Router_Route('category/:category/:controller/:action/*');
$Router->addRoute('category', $CategoryRoute);

Попробуйте добавить начало, чтобы указать наличие дополнительных параметров

1 голос
/ 26 февраля 2012

Пожалуйста, отметьте http://webhkp.wordpress.com/2012/01/01/zend-framework-custom-router/, это решит вашу проблему.

это сделано с INI-файла. мне нравится делать это так

0 голосов
/ 27 мая 2009

Необходимо указать значения по умолчанию при создании маршрута (см. Сообщение dcaunt) ИЛИ указать все параметров в помощнике вида url (категория, контроллер и действие)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...