Intereting Posts

добавление маршрута к маршрутизатору в Zend Framework

Я использую mod-rewrite router.

Я пытаюсь добавить Маршрут к маршрутизатору, который преобразует следующий URL-адрес:
BaseUrl / категория / ааа / mycontroller / MyAction / параметр / значение

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

–parameters–

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

Я использую следующее (не работает) в моем бутстрапе, _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-> не было значения. Предоставление значения по умолчанию делает работу.

Solutions Collecting From Web of "добавление маршрута к маршрутизатору в Zend Framework"

Вы должны включить / *, как было предложено 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); 
 $Router=$this->_front->getRouter(); $CategoryRoute = new Zend_Controller_Router_Route('category/:category/:controller/:action/*'); $Router->addRoute('category', $CategoryRoute); 

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

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

это делается с помощью ini-файла. мне нравится делать это таким образом

Вы должны указать значения по умолчанию при создании маршрута (см. Пост dcaunt) ИЛИ указать все параметры в помощнике просмотра URL (категория, элемент управления и действие)