Php 在视图中找到的Zend插件不在布局中

Php 在视图中找到的Zend插件不在布局中,php,zend-framework,layout,plugins,view-helpers,Php,Zend Framework,Layout,Plugins,View Helpers,我有一个插件,可以检索按钮列表。 当我从视图调用这个插件(echo$this->GetAdminButtons())时,它工作正常。 但是我需要从layout.phtml调用这个插件,当我调用时,应用程序就会停止(白色屏幕,没有输出) 当我尝试获取异常消息时,出现以下错误: Plugin by name 'GetAdminButtons' was not found in the registry; used paths: Zend_View_Helper_Navigation_: Z

我有一个插件,可以检索按钮列表。 当我从视图调用这个插件(echo$this->GetAdminButtons())时,它工作正常。 但是我需要从layout.phtml调用这个插件,当我调用时,应用程序就会停止(白色屏幕,没有输出)

当我尝试获取异常消息时,出现以下错误:

Plugin by name 'GetAdminButtons' was not found in the registry;
used paths: 
    Zend_View_Helper_Navigation_: Zend/View/Helper/Navigation/ 
    Zend_View_Helper_:            Zend/View/Helper/:./views/helpers/
在application.ini中

resources.view.helperPath.Admin_View_Helper = "Admin/View/Helper"
这让我很困惑,因为它在view.phtml文件中运行良好


提前感谢,

继续评论中的讨论。尝试移动配置中的
resources.layout
行,使它们位于
resources.view
行之后(我在评论中的建议是错误的)


我认为您的问题是布局在视图启动之前就已经初始化,这就是为什么布局中不存在视图路径。

辅助对象位于哪里
views/helpers/GetAdminButtons.php
?它位于库/Admin/View/Helper/GetAdminButtons.php中,并且该目录在application.ini中设置为帮助器路径。该路径不包括在错误中的路径列表中。您是否可以编辑您的问题,使其包含application.ini中设置帮助程序路径的相关部分?您的配置中是否有开始
resources.layout
的行?如果是这样,将它们移动到视图线上方是否有效?布局线已经位于视图线上方。我还尝试将该文件放在每个已知的视图/帮助文件夹中,但仍然没有成功。有什么想法吗?我确实切换了两行,看看是否有什么不同,但是没有。你的引导类中有任何_init方法吗?是的,我有一些同样受保护的函数_initviewers(){$this->bootstrap('layout');$view=$this->getResource('layout')->getView();}好的,任何调用的
\u initLayout()
\u initView()
?这是相同的问题,只是在不同的地方。尝试将
\u initviewshelpers()
中的引导行更改为
$this->bootstrap(数组('view','layout')强制它首先引导视图。