0
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'))
                );

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

4

2 回答 2

0

因为在调用 preDispatch 时已经发生了路由。您可能想改用 routeStartup 。请参阅: http: //framework.zend.com/manual/en/zend.controller.plugins.html#zend.controller.plugins.using以获取控制器插件方法的完整列表,按顺序排列。

于 2012-05-19T12:39:16.873 回答
0

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

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

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

于 2012-05-19T12:55:50.283 回答