0
我有一個表單有一個輸入字段名稱=「uid」type =「text」 一個表'tbl_users'並且有一個'uid'列 我想驗證$ this-> input-> post('uid')(如果它已經在數據庫列中)。碼給出波紋管: -Codeigniter表單驗證回調函數問題
控制器/ File1.php --in VALIDATE_DATA()
$this->load->model('model1');
$data['validation_result'] = $this->model1->validate_data();
$this->load->view('view1');
型號/ model1.php
public $set_of_rules = [
'item1'=>[
'field'=>'uid',
'label'=>'User ID',
'rules'=>'trim|required|callback_validateUID',
'field'=>'uid',
'errors'=>[
'required'=>'uid must be filled in',
'validateUID'=>'UID does not exist, please input valid UID',
],
],
];
public validate_data()
{
$this->form_validation->set_rules($this->set_of_rules);
if(!$this->form_validation->run())
return validation_errors() ;
}
else
{
/*$this->db->do_some_database_tasks */
return 'success' ;
}
public validateUID()
{
var_dump('UID validation started...');
$uid = $this->input->post('uid');
$result = $this->db->where(['uid'=>$uid])->get('tbl_users')->row();
if($result!=NULL) return TRUE;
else return FALSE;
}
問題是,驗證規則 'callback_validateUID' 不沒有執行[因爲我已經把一個腳本放在裏面,這樣我就可以理解驗證已經運行了回調函數],但是顯示了驗證錯誤消息('UID不存在,請輸入有效的UID'),儘管如果我將輸入字段留空,'required'不是c嘿!
任何人都可以請幫忙嗎?
$這個 - > form_validation-> set_rules( 'UID', '用戶ID', '必要'); insted of $ this-> form_validation-> set_rules($ this-> set_of_rules); –
其實還會有一些其他的規則也... 所以我不想改變設置一組數組中的規則, 和事實上它是一樣的... – Amin
好的,你可以試試我的ans –