Zend:如何在Bootstrap.php中获取视图?

Stu*_*ent 3 php zend-framework title

我想在Bootstrap中设置网页的标题.我在Bootstrap.php中做了类似的事情:

protected function _initViewHelpers() {         
    $view = Zend_Layout::getMvcInstance()->getView();
    $view->headTitle( 'My Title' );
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Fatal error: Call to a member function getView() on a non-object in /var/www/student/application/Bootstrap.php on line 7
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得视图?我也尝试过这个.

che*_*rtz 6

@ArneRie很接近,但语法错误.这来自快速入门:

protected function _initDoctype()
{
    $this->bootstrap('view');
    $view = $this->getResource('view');
    $view->doctype('XHTML1_STRICT');
    // but what you really want is
    $view->headTitle('My title');
}
Run Code Online (Sandbox Code Playgroud)

  • @Student要使用这个答案,你需要在配置文件中配置视图资源,例如`resources.view [] =`甚至更好`resources.view.encoding ="utf-8"` (4认同)

Gor*_*don 5

您可能在启动之前尝试访问该实例.尝试

protected function _initViewHelpers() {
    $view = Zend_Layout::startMvc()->getView();
    $view->headTitle( 'My Title' );
}
Run Code Online (Sandbox Code Playgroud)

但是,startMVC可以传递一个$options参数,该参数可以是作为字符串的布局文件夹的路径,也可以是Zend_Config将设置为MVC实例的数组或实例.ZF通常会在稍后阶段从您的application.ini自动传递它.当你没有通过时,我不知道你的应用程序将如何表现.

更好的选择是拥有资源插件控制器插件.有关这些示例的示例,请参阅链接页面,另请参阅实现详细信息的源代码Zend_Layout.

  • 只需使用上述原始文档中的那个. (2认同)