我的问题是,当我从视图脚本调用视图助手时,它不能被调用尽管我通过以下行正确地将所有信息路径添加到配置文件中:
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
你能做到这一点吗:
视图脚本
$view = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');
var_dump($this === $view);
var_dump($view->getHelperPaths());
exit;
我认为你的观点实例在某个时刻被替换了。可能是模块的引导程序有视图资源吗?
也可能是其他明显的错误。太明显了,所以你永远不会想到
btw移除_initViewHelpers方法。Zend_Application_Resource_View工作正常。如果你使用这种方法,请正确使用,例如:
$this->bootstrap('view');
$view = $this->getResource('view');
//whatever