我刚刚创建了文件/CodeIgniter/application/helpers/ajax_helper.php
,现在想在CodeIgniter/application/controllers/Ajax.php
中使用它的功能,所以我使用:
function __construct(){
parent::__construct();
if((bool)$this->session->userdata('logged_in'))
$this->load->helper('ajax');
else
return FALSE;
}
但是发生了错误:
无法加载请求的文件:helpers / ajax_helper.php
有什么问题?
答案 0 :(得分:1)
当CodeIgniter具有内置的同名助手(ajax_helper)时,您只能使用“MY_”前缀。
请将文件名“my_ajax_helper.php”更改为“ajax_helper.php”并使用$this->load->helper('ajax');
“MY_”前缀仅 用于扩展CI的内置核心助手(控制器,模型等上的相同规则),
例如,您可以使用my_url_helper扩展url_helper,并按$this->load->helper('url');
加载,而不是'my_url'
,但是您无法使用此前缀创建自己的帮助程序。
<强>更新强> 哎呀,对不起我发现我的答案可能是错的,CI可以在我的测试中加载带有'my_ajax'的自定义助手。也许另一个可能的原因是文件/文件夹权限?
更新:我检查了CI的代码,发现当file_exists()返回false时它只输出此消息,这意味着辅助文件不存在。因此问题可能是由ajax_helper.php的文件名,路径或字母大小写引起的。
答案 1 :(得分:0)
在codeigniter系统中不存在助手“ajax”,因此首先您可以将文件名重命名为ajax_helper.php
,第二次使用:
function __construct(){
parent::__construct();
if((bool)$this->session->userdata('logged_in'))
$this->load->helper('ajax_helper');
else
return FALSE;
}