2013-01-20 39 views
0

我刚创建的文件/CodeIgniter/application/helpers/ajax_helper.php现在想使用它的功能CodeIgniter/application/controllers/Ajax.php所以我用:发生如何在codeigniter中创建助手?

function __construct(){ 
    parent::__construct(); 
    if((bool)$this->session->userdata('logged_in')) 
     $this->load->helper('ajax'); 
    else 
     return FALSE; 
} 

但是错误:

无法加载所需的文件:佣工/ ajax_helper.php

有什么不对?

+0

我曾在过去的问题,从我的构造函数加载它们,所以我只是他们转移到控制器。只为增加的测试'MY' - – Bananenspin

回答

1

只能使用“MY_”前缀,当笨已建成在同名帮助程序(ajax_helper)中。 请更改文件名“my_ajax_helper.php”到“ajax_helper.php”,并使用$this->load->helper('ajax');

的“MY_”前缀是使用延长CI的内置核心助手(在控制器相同的规则,模式,等等), 例如,你可以扩展url_helper与my_url_helper,并通过$this->load->helper('url');,不'my_url'加载它,但你不能创建你以这个前缀自己的助手。

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

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

+0

对不起,我错了。默认情况下,我尝试没有我和发生错误。 – Kin

+0

您是否尝试更改文件/文件夹权限?也许CI内核没有权限获取文件。测试使用PHP的[is_readable()] (http://php.net/manual/en/function.is-readable.php) – hit1205

+0

我有检查CI的核心代码,此错误信息时,输出帮手文件不存在,也许你可以检查是否有任何错字? – hit1205

0

助手“Ajax”的不笨的系统中存在,所以首先你可以重命名文件名一样ajax_helper.php,第二次使用:

function __construct(){ 
parent::__construct(); 
if((bool)$this->session->userdata('logged_in')) 
    $this->load->helper('ajax_helper'); 

else 
    return FALSE; 
}