zend框架找不到帮助器视图文件。获取'找不到名称的插件'错误

时间:2012-03-31 06:54:24

标签: php zend-framework zend-view

我想简单地使用位于/library/my/view/helpers/friends.php

的自定义视图助手

我在application.ini

中有这个

resources.view.helperPath.My_View_Helper = "/my/view/helpers"

这是助手类:

class My_View_Helper_Friends extends Zend_View_Helper_Abstract {
    public function friends() {
        $str = "hello world";
        return $str;
    }
}

这是在视图文件中:

<?php echo $this->friends(); ?>

我在这一行收到错误,说它无法在已经存在的路径中找到该插件。

错误:

  

在注册表中找不到名为'Friends'的插件;使用路径:   My_View_Helper_:/ My / View / Helpers / Zend_View_Helper_:   的Zend /视图/助手/; C:/ HTTP / Xampplite文件/ htdocs中/ ZF-教程/应用/视图\助手/

看起来它使用正确的路径,文件就在那里。我不明白为什么找不到它?

1 个答案:

答案 0 :(得分:2)

我认为问题在于使用了错误的路径。

  

...使用过的路径:My_View_Helper_:/ My / View / Helpers /

注意路径是/My/View/Helpers。它使用的是绝对路径。另一个问题是该文件夹应命名为Helper而不是helpers

然后将application.ini中的配置行更改为:

resources.view.helperPath.My_View_Helper = APPLICATION_PATH "/../library/my/view/helper"

并确保您的类名为My_View_Helper_Friends,文件名为Friends.php。案件很重要。该目录应该真的被称为My/View/Helper带帽。

编辑:假设您library中有include_path,您还可以使用该行:

resources.view.helperPath.My_View_Helper = "My/View/Helper"

请注意它没有前导/。这会搜索include_path中所有位置的My/View/Helper文件夹。