0

我刚刚创建了文件/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

怎么了?

4

2 回答 2

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');、 not加载它'my_url',但您不能创建自己具有此前缀的自己的助手。

更新: 糟糕,对不起,我发现我的答案可能是错误的,CI 可以在我的测试中加载带有“my_ajax”的自定义助手。也许另一个可能的原因是文件/文件夹权限?

更新:我检查了 CI 的代码,发现它只在 file_exists() 返回 false 时输出此消息,这意味着帮助文件不存在。所以问题可能是由 ajax_helper.php 的文件名、路径或字母大小写引起的。

于 2013-01-20T17:31:12.677 回答
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;
}
于 2013-01-20T13:09:51.747 回答