2011-11-21 119 views
0

我正在使用Codeigniter 2.0.3開發API。 我需要驗證用戶,然後輸出錯誤。我已經使用自定義函數擴展了Form驗證庫,但在調用它時只會出錯。自定義驗證碼調用失敗

奇怪的是,它脫機工作(在我的本地mac),但不是在遠程服務器上。

控制器中的驗證代碼:

$this->form_validation->set_rules ('name', 'Name', 'trim|required|xss_clean'); 

if ($this->form_validation->run() == FALSE) { 

    $errors = $this->form_validation->get_error_array(); 

    respond (count($errors), '422', $errors, TRUE); 

} 

在My_form_validation自定義函數,是在位於應用/芯:

function get_error_array() { 

return $this->_error_array; 

} 

錯誤消息:

Call to undefined method CI_Form_validation::get_error_array() 

在MY_form_validation文件的構造:

public function MY_Form_validation ($config) { 

parent::__construct ($config); 

} 
+0

你有沒有想過嗎?我在擴展CI_Form_Validation類時出現「調用未定義的方法...」錯誤時出現同樣的問題。但只在我的遠程服務器上!不在我的本地主機上。 –

+0

我意識到我遇到的問題,你很可能有同樣的問題。我命名我的類MY_Form_validation,但我的文件名全部是小寫。 my_form_validation.php。 很明顯對我來說,這是我的主機和我的本地主機之間的服務器配置區別,其中區分大小寫不一樣。 它確實在user_guide下的命名約定部分... http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html –

回答

1

在My_form_validation自定義功能,它位於 應用/核心:

文件MY_Form_validation.php應放在由於Form Valition庫不是核心庫,因此需要使用application/libraries

+0

我在兩者中都試過。同樣的問題。 –

+0

嘗試從MY_Form_validation中刪除__construct()。如果你不用這個構造來完成任何事情,那就不需要了。這個構造可能是你的問題。如果沒有,問題在於你上面提到的其他地方。 – Repox

+0

仍然有錯誤。我將代碼移動到核心文件中,它有所幫助。但我認爲延長會更好。 –