1

我做了一个自定义助手扩展系统 string_helper.php。

我将它放在我的/application/helpers目录中,MY_string_helper.php根据需要调用它,对其功能进行了单元测试。

现在,当我尝试从模型中调用其中一个函数时,它不起作用。

相反,默认字符串助手中的函数起作用。看起来我的扩展由于某些原因没有加载。

非常感谢,节日快乐。


编辑:更有趣。我将文件保存categories_helper.phpsystem/helpers目录中,当我尝试在模型中加载它时,我得到以下响应:*无法加载请求的文件:helpers/categories_helper.php*

4

6 回答 6

3

我有同样的问题。我来自我的 codeigniter 项目的 windows 操作系统开发,然后转移到 Ubuntu,但不知何故它仍然没有加载我的助手。

我发现将命名约定更改为小写可以解决问题。不要遵循文档中的内容,在该文档中为您提供要插入的前缀,特别是如果它是大写的。使用小写字母。

于 2012-08-16T23:03:31.923 回答
1

帮助器的 Codeigniter用户指南描述了帮助器仅可用于控制器和视图。它没有明确提到辅助函数在模型中工作。

CodeIgniter 默认不加载 Helper Files,所以使用 Helper 的第一步是加载它。加载后,它将在您的 控制器视图中全局可用。

于 2010-12-27T03:04:07.737 回答
1

Linux 区分大小写,Windows 不区分大小写。因此,如果您在 OS Windows 中进行开发,在将您的系统上传到 Linux 托管敌人示例之前,您需要使用小写的文件名。

例如:

Windows中:application/helpers/MY_functions_helpers.php
Linux中: application/helpers/my_functions_helpers.php

于 2014-07-21T15:34:20.643 回答
0

I faced a similar kind of situation. My development environment was WINDOWS and it worked fine as described in the DOCs i.e. MY_string_helper.php

On the production environment of UNIX, it gave error:

Unable to load the requested file: helpers/my_form_helper.php

Changing the file name to lower case resolved this error BUT the helper was not actually loaded.

After a lot of time waste, by hit and trail it worked [ it is un-documented ]

In the autoload.php, just include the mention the extended helper before the default helper:

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

Also, the prefix has to capital, it did not work with lower case prefix:

$config['subclass_prefix'] = 'MY_';
于 2013-07-14T09:05:20.183 回答
0

嗯,我不确定它是否适用于助手,但是您是否尝试过以这种方式加载助手?

$CI = & get_instance();

$CI->load->helper('string');

于 2010-12-30T11:26:28.617 回答
0

您只需要使用您的前缀更改您的辅助函数名称,例如在 application/config/config.php 中找到的

助手重命名后确保它只包含小写字母

然后使用您重命名的函数名称更改自动加载文件,

主要问题是因为像您的托管服务器这样的操作系统是 linux 并且您使用 Windows 进行开发,所以这个问题出现了

于 2019-09-05T08:10:32.787 回答