我想在助手中创建新功能,但它仍然失败: Call to undefined function我保存我的助手在 BaseController 上app/Helper/Text_helper.php使用namespace App\Helpers; 和加载助手使用protected $helpers = ['text'];参考: https: //codeigniter4.github.io/userguide/general/helpers.html#extending-helpers 但它仍然无法正常工作
3 回答
慕容森
TA贡献1853条经验 获得超18个赞
它在文档中没有提到,但请记住在你的助手的文件名中添加一个后缀_helper否则它不会在 codeigniter 4 中工作。
例如,如果您创建了一个助手xxx.php,请将其更改为xxx_helper.php。
要加载助手,您可以使用助手函数(如:)helper('xxx.php');
或将其添加到$helpers数组,该数组是BaseController中的受保护属性
鸿蒙传说
TA贡献1865条经验 获得超7个赞
如果您的想法是“扩展”(替换) stystem/helpers/text_helper上的函数,请注意文件名中的小写字母,您必须尊重它。
此外,助手不需要命名空间......助手加载器将搜索它。
helper() 方法将扫描 app/Config/Autoload.php 中定义的所有 PSR-4 命名空间,并加载所有匹配的同名助手。这允许加载任何模块的助手,以及您专门为此应用程序创建的任何助手。加载顺序如下:
app/Helpers - 这里加载的文件总是首先加载。
{namespace}/Helpers - 所有命名空间都按照它们定义的顺序循环。
system/Helpers - 最后加载基础文件
命名空间将用于在其他位置加载助手,例如:
helper('Libraries\MyFunctions');
只要可以通过 PSR-4 中设置的命名空间找到该路径
- 3 回答
- 0 关注
- 134 浏览
添加回答
举报
0/150
提交
取消