codeigniter 代码触发器:未加载用户定义的帮助器函数

aiqt4smr  于 2022-12-07  发布在  其他
关注(0)|答案(6)|浏览(102)

我创建了一个自定义助手来扩展系统string_helper.php。
我把它放在我的/application/helpers目录中,根据需要将其命名为MY_string_helper.php,并对其功能进行了单元测试。
现在,当我试图从模型中调用它的一个函数时,它不起作用。
默认字符串帮助器中的函数可以工作。看起来我的扩展由于某些原因没有加载。
非常感谢,节日快乐。
编辑:更有趣。我将文件保存为categories_helper.php,并将其保存在system/helpers目录中,当我尝试在模型中加载它时,得到了以下响应:* 无法加载模块:帮助程序/类别_帮助程序.php*

lzfw57am

lzfw57am1#

我也遇到了同样的问题,我从我的codeigniter项目的windows操作系统开发出来,然后转到Ubuntu,但不知何故,它仍然没有加载我的助手。
我发现将命名约定改为小写可以解决这个问题。不要按照文档中给出的前缀插入,特别是如果前缀是大写的。使用小写。

vlju58qv

vlju58qv2#

Codeigniter User Guide for helpers描述了helper只对控制器和视图可用,但没有明确提到helper函数在模型中工作。
CodeIgniter在默认情况下不加载Helper文件,因此使用Helper的第一步是加载它。一旦加载,它将在您的控制器视图中全局可用。

btqmn9zl

btqmn9zl3#

Linux是区分大小写的,Windows没有。所以,如果你是在操作系统Windows中开发,在上传你的系统之前,在Linux主机的例子,你需要有小写的文件名。
例如:
Windows中:* 应用程序/助手/MY_函数_助手.php*
Linux中:* 应用程序/助手/my_functions_helpers.php*

vxf3dgd4

vxf3dgd44#

嗯,我不确定它是否适用于助手,但你是否尝试过以这种方式加载助手?
$CI = & get_instance();
$CI->load->helper('string');

y53ybaqx

y53ybaqx5#

我也遇到过类似的情况,我的开发环境是WINDOWS,它运行得很好,就像DOCs中描述的那样,即MY_string_helper.php
在UNIX的生产环境中,出现错误:
无法加载控制器:helpers/my_form_helper.php
将文件名更改为小写解决了此错误实际上未加载帮助程序。
经过大量的时间浪费,通过击中和线索,它的工作[ * 这是未记录 * ]
在autoload.php中,只需在默认helper之前包含扩展helper:

$autoload['helper'] = array('my_string', 'string');

还有,前缀必须大写,它不能用小写前缀:

$config['subclass_prefix'] = 'MY_';
deyfvvtc

deyfvvtc6#

你只需要用你的前缀来改变你的助手函数名,就像在application/config/config.php中找到的那样
重命名帮助程序后,确保它只包含小写字母
然后使用重命名的函数名更改autoload文件,
主要问题是因为操作系统像你的主机服务器是linux和你开发的windows所以这个问题上升

相关问题