如何正确扩展Zend View

时间:2013-03-22 06:40:11

标签: zend-framework zend-view

在我的MVC应用程序的视图和布局脚本中,我经常需要访问isLoggedIn()isAdmin()等便捷方法。我想将它们放在基本视图中,以便我可以使用$this->isLoggedIn()$this->isAdmin()访问它们。什么是正确的方法?

我尝试使用MY_Base_View扩展Zend_View。然后我创建了一个View资源并从我的bootstrap初始化它。我知道它被初始化,因为页面标题工作正常。这是资源中的代码:

$this->_view = new MY_Base_View();
$this->_view->headTitle('My page title!');

但是,当我在视图脚本中时,如果我print_r($this),则表示该对象是Zend View对象(不是MY_Base_View)。

布局遇到了类似的问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

稀释!!把它整理出来。在视图资源中,我需要为ViewRenderer设置视图,如下所示:

    $viewRenderer = Zend_Controller_Action_HelperBroker
        ::getStaticHelper('ViewRenderer');
    $viewRenderer->setView($this->_view);           

(这是在手册的参考资料部分!)无论如何,这就是我必须做的。为了完成其工作,布局将查找使用渲染器注册的视图...