0

我的问题是当我从视图脚本调用视图助手时,尽管我通过这一行正确地将所有信息路径添加到配置文件中,但它不能被调用:

resources.view.helperPath.ZF_View_Helper_="ZF/View/Helper/"

我也在引导文件中注册了帮助程序

function _initViewHelpers(){
    $view = new Zend_View();    
    $view->addHelperPath('ZF/View/Helper','ZF_View_Helper');
    $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer();
    $viewRenderer->setView($view);
    Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
}

但它仍然打印出此错误消息是徒劳的:

Application error
Exception information:
Message: Plugin by name 'OutputHelper' was not found in the registry; used paths: 
Zend_View_Helper_: Zend/View/Helper/  

它没有按预期包含自定义视图帮助程序路径;

视图助手的路径是:library/ZF/View/Helper/OutputHelper.php

4

1 回答 1

1

你能做这个吗:

在视图脚本

$view = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');
var_dump($this === $view);
var_dump($view->getHelperPaths());
exit;

我认为您的视图实例会在某个时候被替换。可能是模块的引导程序有视图资源?

或者它可能是其他明显的错误。如此明显,以至于你永远不会想到它

顺便说一句,删除该 _initViewHelpers 方法。Zend_Application_Resource_View 工作得很好。如果您使用此方法,请正确使用它,例如:

$this->bootstrap('view');
$view = $this->getResource('view');
//whatever
于 2011-06-20T06:57:54.060 回答