2010-08-12 65 views
0

无法弄清楚,为什么键词在语言插件和定制路径之间消失。我从模型内部调用注册表,这是在custome路由中请求的。帮助Zend_Registry删除键字朗出

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} 

我有语言的插件内检查时,它注册郎键罚款。

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

回答

2

请确保注册表项设置在Plugins_LangSelector::routeStartup()之内,因此在处理路由之前将会注册之前的

从ZF-手册:Plugins

routeStartup()在前端控制器在路由器上呼吁向注册路由请求之前被调用。

如果您在routeShutdown(),preDispatch(),postDispatch()或dispatchLoopShutdown()中设置了密钥,那就迟到了。

+0

伴侣!非常感谢你!我不知道preDispatch在匹配路线之前没有做到这一点。 :\ 现在一切正常。 – Somebody 2010-08-12 17:39:47