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 –