查看脚本dos不识别zend框架中的视图助手

时间:2011-06-20 00:08:26

标签: php zend-framework view-helpers

嗨我的问题是相当的,当我从视图脚本调用一个视图助手时,它无法被调用 虽然我通过这一行正确添加了配置文件的所有信息路径:

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

我也注册了boosttap文件中的助手

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

1 个答案:

答案 0 :(得分:1)

你可以这样做:

视图脚本中的

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

我认为您的视图实例会在某些时候被替换。 可能是模块的bootstrap有视图资源吗?

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

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

$this->bootstrap('view');
$view = $this->getResource('view');
//whatever