zend框架引导程序中的变量

时间:2012-03-15 16:46:11

标签: zend-framework

我在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);
}

1 个答案:

答案 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");
}