参考链接是这样:
Check duplicate data in CodeIgniter try to make a callback function
这是我的控制器:
function saveData(){
$value = $this->input->post('Id');
$fromtable = 'tbl_tablename';
$fromwhere = 'Id';
$this->form_validation->set_rules('productId', '', 'callback_check_duplicate_record[' . $value,$fromtable,$fromwhere . ']');
if ($this->form_validation->run() == FALSE) {
$this->session->set_flashdata('error', 'Record already exists.');
redirect('addNew');
return;
}
}
public function check_duplicate_record($value,$fromtable,$fromwhere) {
return $this->user_model->checkRecordExists($value,$fromtable,$fromwhere);
}
这对1个参数有效,但是如何发送3个参数。
我在哪里做错了
答案 0 :(得分:0)
您说的话并没有做错什么,只是回调函数仅设计用于处理1个参数。
由于您的两个值都是硬编码的,因此您实际上不需要从技术上传递它们。
$this->form_validation->set_rules('productId', '', 'callback_check_duplicate_record[' . $value . ']');
public function check_duplicate_record($value) {
$fromtable = 'tbl_tablename';
$fromwhere = 'Id';
return $this->user_model->checkRecordExists($value,$fromtable,$fromwhere);
}
老实说,它甚至看起来都不像您需要表单验证,因为您唯一的验证者是回调,只需使用:
if (!$this->user_model->checkRecordExists($value,$fromtable,$fromwhere)) {
$this->session->set_flashdata('error', 'Record already exists.');
redirect('addNew');
return;
}