帮助Zend_Registry放弃关键

时间:2010-08-12 17:04:34

标签: zend-framework

无法弄清楚,为什么关键语言在语言插件和匹配的自定义路由之间消失。我在内部模型中调用注册表,这是在客户路径中请求的。

http://pastie.org/1088574

 Message: No entry is registered for key 'lang'
Stack trace:

#0 C:\xampp\xampp\htdocs\chat\application\models\Getcategories.php(15): Zend_Registry::get('lang')
#1 C:\xampp\xampp\htdocs\chat\library\Routes\Categories.php(64): Getcategories->__construct()
#2 C:\xampp\xampp\htdocs\chat\library\Zend\Controller\Router\Rewrite.php(398): Routes_Categories->match('/ru/woman-searc...')
#3 C:\xampp\xampp\htdocs\chat\library\Zend\Controller\Front.php(911): Zend_Controller_Router_Rewrite->route(Object(Zend_Controller_Request_Http))
#4 C:\xampp\xampp\htdocs\chat\library\Zend\Controller\Front.php(212): Zend_Controller_Front->dispatch()
#5 C:\xampp\xampp\htdocs\chat\application\Bootstrap.php(65): Zend_Controller_Front::run('C:\xampp\xampp\...')
#6 C:\xampp\xampp\htdocs\chat\public\index.php(34): Bootstrap->run(Array)
#7 {main}  

我已经检查了内部语言插件,它注册了lang key fine。

路由中的Zend_Registry :: get('lang')也会抛出异常。

1 个答案:

答案 0 :(得分:2)

确保在Plugins_LangSelector::routeStartup()中设置了Registry-Key,以便在处理路径之前注册

来自ZF手册:Plugins

  

在Zend_Controller_Front在路由器上调用以评估针对已注册路由的请求之前调用routeStartup()。

如果在routeShutdown(),preDispatch(),postDispatch()或dispatchLoopShutdown()中设置密钥,则为时已晚。