如何在codeigniter中创建帮助器?

时间:2013-01-20 12:42:38

标签: codeigniter helper

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

有什么问题?

2 个答案:

答案 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;
}