我做了一个自定义助手,扩展了系统string_helper.php。
我将它放在我的/application/helpers
目录中,根据需要将其命名为MY_string_helper.php
,对其功能进行单元测试。
现在,当我尝试从模型中调用其中一个函数时,它不起作用。
默认字符串帮助程序中的函数可以使用。看起来我的扩展程序由于某些原因未加载。
非常感谢,节日快乐。
编辑:甚至更有趣。我将文件保存为categories_helper.php
目录中的system/helpers
,当我尝试在模型中加载它时,得到以下响应:*无法加载请求的文件:helpers / categories_helper.php * < / p>
答案 0 :(得分:3)
我遇到了同样的问题。我来自我的codeigniter项目的Windows OS开发,然后转移到Ubuntu,但不知怎的,它仍然没有加载我的助手。
我发现将命名约定更改为小写可以解决问题。不要按照文档中写入的内容来插入前缀,特别是如果它是大写的。使用小写。
答案 1 :(得分:1)
Codeigniter User Guide for helpers描述了助手只能用于控制器和视图。它没有明确提到辅助函数在模型中有效。
CodeIgniter不加载助手文件 默认情况下,这是使用的第一步 帮助者是加载它。一旦加载, 它在全球范围内可用 控制器和观看次数。
答案 2 :(得分:1)
Linux区分大小写,Windows没有。因此,如果您是在OS Windows中进行开发,那么在以Linux托管对象为例上传系统之前,您需要以小写的形式提供文件的名称。
例如:
在 Windows : application / helpers / MY_functions_helpers.php
在 Linux : application / helpers / my_functions_helpers.php
答案 3 :(得分:0)
mmm,我不确定它是否适用于助手,但你是否试图以这种方式加载助手?
$CI = & get_instance();
$CI->load->helper('string');
答案 4 :(得分:0)
我遇到了类似的情况。我的开发环境是WINDOWS,它运行良好,如DOCs中所述,即MY_string_helper.php
在UNIX的生产环境中,它给出了错误:
无法加载请求的文件:helpers / my_form_helper.php
将文件名更改为小写已解决此错误但帮助程序未实际加载。
经过大量的时间浪费,通过点击和追踪它起作用[它没有记录]
在autoload.php中,只需在默认帮助程序之前提及扩展帮助程序:
$autoload['helper'] = array('my_string', 'string');
,前缀必须为大写,它不适用于小写前缀:
$config['subclass_prefix'] = 'MY_';
答案 5 :(得分:0)
您只需要使用您的前缀(如在application / config / config.php中找到的那样)更改辅助函数名称
重命名助手后,请确保它仅包含小写字母
然后使用您重命名的功能名称更改自动加载文件,
由于诸如主机服务器之类的操作系统而导致的主要问题是linux,并且您使用Windows进行开发,因此此问题出现了