2010-04-17 2 views
0

С новыми классами Zend_Application/Zend_Application_Bootstrap Я смущен относительно того, где я должен применять свои собственные маршруты. Например, в данный момент у меня есть один маршрут:Где я должен определять пользовательские маршруты в моем приложении ZF 1.10?

protected function _initRouter() { 
    $router = new Zend_Controller_Router_Rewrite; 
    $route = new Zend_Controller_Router_Route('news/:id', 
     array('controller' => 'news', 'action' => 'view')); 
    $router->addRoute('postArchive', $route);   
} 

Этот метод находится в моем Zend_Application_Bootstrap_Bootstrap, и, безусловно, работать. Маршрут также применяется в $router.

Как я вижу, я мог бы сделать две вещи неправильно - либо не туда, чтобы добавить эти маршруты, либо не добавить правильный маршрутизатор. Может ли кто-нибудь указать мне в правильном направлении?

ответ

2

Похоже, вы не передавая маршрутизатор к переднему контроллеру:

protected function _initRouter() 
{ 
    $this->bootstrap('frontController'); 
    $front = Zend_Controller_Front::getInstance(); // from singleton, for example 
    $router = $front->getRouter(); 
    $route = new Zend_Controller_Router_Route('news/:id', 
     array('controller' => 'news', 'action' => 'view')); 
    $router->addRoute('postArchive', $route); 

    return $router; 
} 
0

resources.router.routes.www.type = "Zend_Controller_Router_Route_Hostname" resources.router.routes.www.route = «: module.domain.tld " resources.router.routes.www.defaults.module =" default " resources.router.routes.www.chains.index.type =" Zend_Controller_Router_Route " resources.router.routes.www.chains .index.route = ": controller /: action/*" resources.router.routes.www.chains.index.defaults.controller = "index" ресурсов. router.routes.www.chains.index.defaults.action = «Индекс»

Этот вид строки в файле Application.ini в начальной загрузки секции сделал работу для меня ...

Смежные вопросы