Zend Framework:在视图脚本中无法访问bootstrap中的视图var set?

时间:2010-04-27 13:00:53

标签: php zend-framework

我在bootstrap文件中设置了一个view var,如下所示:

protected function _initVars()
{
    $this->bootstrap('layout');
    $layout = $this->getResource('layout');
    $view = $layout->getView();
    $view->theme = 'MY_THEME';
}

我的application.ini也有以下行:

resources.view[] =

但是在视图脚本中,

<?php echo $this->theme ?> 

什么都不打印。

请建议?

修改

我可以使用所有函数,但由于某些原因,它是未被回显的视图变量。

3 个答案:

答案 0 :(得分:1)

您忘记返回视图对象。 return $ view;

答案 1 :(得分:0)

通过init方法扩展视图对我有用

protected function _initView()
{
    $view = new Zend_View;
    $view->setEncoding('UTF-8');
    $view->doctype('XHTML1_TRANSITIONAL');

    $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
    Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);

    $view->SOME_VAR = 'SOME_VALUE';

    return $view;
}

答案 2 :(得分:0)

这是我的,对我很有用.............我希望能有所帮助

 protected function _initLayoutView() {
            $this -> bootstrap ('layout');
            $layout = $this -> getResource ('layout');
            $view = $layout -> getView();
            $view->addHelperPath('dagho/View/Helper', 'dagho_View_Helper');
            $view -> doctype('XHTML1_STRICT');
            $view->headMeta()->appendHttpEquiv('Content-Type',
                    'text/html; charset=utf-8')
                   ->appendHttpEquiv('Content-Language', 'en-US');;
            $view->headLink(array('rel' => 'favicon',
                    'href' => $view->baseUrl().'/img/favicon.ico'),
                    'PREPEND');
            $view -> headLink() -> prependStylesheet($view->baseUrl('/css/demo.css'))
                    ->prependStylesheet($view->baseUrl('/css/text.css'))
                    ->prependStylesheet($view->baseUrl('/css/960.css'))
                    ->prependStylesheet($view->baseUrl('/css/reset.css'));

            $view->headScript()->appendFile($view->baseUrl('js/jquery-1.4.2.min.js') , "text/javascript")
                    ->appendFile($view->baseUrl('js/jquery-ui.min.js') , "text/javascript")
                    ->appendFile($view->baseUrl('js/swfobject/swfobject.js') , "text/javascript");
            $view -> headTitle('title ');
            $view -> headTitle() -> setSeparator( ' : ' );
            $trackerId = 'UA-xxxxxxxx-4';
            $googleAnalytics = $view->GoogleAnalytics($trackerId);
            return $view ;
        }

在视图中我举了类似的内容:<?php echo $this->GoogleAnalytics(); ?> 任何方式你可以添加到<?php echo $this->theme ?>的最后一个分号,如<?php echo $this->theme; ?>我知道听起来很疯狂,但我更喜欢坚持规则