ZF:路由器插件不起作用

时间:2012-05-19 10:13:44

标签: php zend-framework frameworks router

Zend_Controller_Front::getInstance()->setParam('useDefaultControllerAlways', true);
Zend_Controller_Front::getInstance()->getRouter()->addRoute('taxes', new     Zend_Controller_Router_Route_Static('taxes',
                    array('controller' => 'config', 'action' => 'taxes'))
                );

如果在引导文件中调用插件,有谁知道为什么这不起作用?如果直接在bootstrap中调用 - 一切正常。插件设置为使用preDispatch()方法

2 个答案:

答案 0 :(得分:0)

因为在调用preDispatch时已经发生了路由。您可能希望使用routeStartup。有关控制器插件方法的完整列表,请参阅:http://framework.zend.com/manual/en/zend.controller.plugins.html#zend.controller.plugins.using

答案 1 :(得分:0)

  

在调度操作之前调用preDispatch()   调度员。此回调允许代理或过滤器行为。

这意味着在已发生predispatch路由时,您想要的可能是routeStartup,因为它在路由请求之前被调用:

  

在Zend_Controller_Front调用之前调用routeStartup()   路由器根据注册路由评估请求。