我在bootstrap文件中的两个函数中有$ view变量它们不能同时工作,除非我注释掉其中一个,我需要同时使用这两个函数
protected function _initNavigation()
{
$this->bootstrap('layout');
$layout = $this->getResource('layout');
// $view = $layout->getView();
// $navigation = new Zend_Navigation($this->getOption('navigation'));
// $view->navigation($navigation);
}
protected function _initjQuery(){
$view = new Zend_View();
$view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
$viewRenderer->setView($view);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
}
答案 0 :(得分:2)
在一个函数中,您正在使用布局资源中的View对象,而在另一个函数中,您正在创建一个新的View对象。如果您将第二个函数更改为第一个函数,则不需要创建新视图或将其注入视图渲染器。
我建议您将代码更改为:
protected function _initNavigation()
{
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$navigation = new Zend_Navigation($this->getOption('navigation'));
$view->navigation($navigation);
}
protected function _initjQuery()
{
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$view->addHelperPath("ZendX/JQuery/View/Helper", "ZendX_JQuery_View_Helper");
}