无法弄清楚,为什么关键语言在语言插件和匹配的自定义路由之间消失。我在内部模型中调用注册表,这是在客户路径中请求的。
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')也会抛出异常。答案 0 :(得分:2)
确保在Plugins_LangSelector::routeStartup()
中设置了Registry-Key,以便在处理路径之前注册。
来自ZF手册:Plugins
在Zend_Controller_Front在路由器上调用以评估针对已注册路由的请求之前调用routeStartup()。
如果在routeShutdown(),preDispatch(),postDispatch()或dispatchLoopShutdown()中设置密钥,则为时已晚。