2013-01-20 37 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; 
}