gpt4 book ai didi

php - Action 助手包含错误 + getActionController 为空

转载 作者:行者123 更新时间:2023-12-04 05:47:25 24 4
gpt4 key购买 nike

我想写一些 Action 助手,但似乎我做得不太好。

首先,在我的 Bootstrap 文件中,我正在执行以下操作:

Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH.'/controllers/helpers/My/Helper/', 'My_Helper');

在这个目录中,我有以下树:
My/Helper/
- Fileupload/
- Abstract.php
- Xhr.php
- Fileupload.php

在我的 Controller 中,我成功调用了文件上传助手(在 My_Helper_Fileupload 类中):
$res = $this->_helper->fileupload($directory);

但是在这个助手的构造函数中,我正在尝试获取另一个助手(在 My_Helper_Fileupload_Xhr 类中):
Zend_Controller_Action_HelperBroker::getStaticHelper('Fileupload_Xhr');

这导致我出错

Action Helper by name FileuploadXhr not found



我究竟做错了什么?我尝试了很多东西,但我无法弄清楚出了什么问题......

此外,经过几次测试,似乎在我的文件上传助手的构造函数中,当我调用 getActionController 方法时,我得到了 NULL。不是应该自动设置吗?

最佳答案

助手代理将删除下划线,作为其“规范化”您提供的助手名称的过程的一部分。它只处理 CamelCased 助手名称,所以你的 Fileupload_Xhr转换为 FileuploadXhr .

Zend_Loader 最终负责查找和加载正确的 PHP 文件,它使用下划线来确定何时应该添加目录分隔符。

如果您将这两件事结合起来,实际的结果是您不能在任何路径下为操作助手代理创建嵌套文件夹结构。您希望能够为添加了 addPath 的任何路径加载的所有帮助程序类必须直接位于给定的路径下,没有中间的子文件夹。

简单的解决方案是从 My/Helper/Fileupload/Xhr.php 移动您的助手至 My/Helper/FileuploadXhr.php .

关于php - Action 助手包含错误 + getActionController 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10502292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com