我只想知道我们可以在CodeIgniter中使用它吗。
$this->form_validation->set_rules('marriage_id', 'Marriage ID','required|is_unique[marriage.marriage_id]|matches[person.marriage_id]');
marriage
是我的表名,marriage_id
是该表中的字段。
Person
是另一个表,它还有marriage_id
field.From
高于控制器代码,我正在将数据插入marriage
表中,我想知道我可以查看,它与人员表中的marriage_id
是否匹配。
答案 0 :(得分:0)
根据Codeigniter引用,您只能使用带有'is_unique'的table.field,但不能使用'matches'(匹配检查另一个表单元素,而不是db表)。
您应该使用自定义回调来检查您的需求,请阅读http://ellislab.com/codeigniter%20/user-guide/libraries/form_validation.html#callbacks
答案 1 :(得分:0)
不,你不能。您可以将table_name.feild_name与is_unique一起使用
但是,您可以编写回调函数来检查所需的验证
像这样的东西
$this->form_validation->set_rules('username', 'Username', 'callback_check_match');
以及您的自定义回拨功能...
public function check_match($str)
{
$result = $this->model_name->check_databse($str);
//call to model function fo check string match in databse and return result
if (return_result) {
$this->form_validation->set_message('check_match', 'The %s field does not match ur desired feild');
return FALSE;
}
else
{
return TRUE;
}
}
在你的模特中:
public function check_databse($str){
$this->db->select('count(*)',FALSE)->from('table_name')->where('coulmn_name',$str);
retrun $this->db->get()->result_array();
}
有关更多参考,请查看以下链接以获取有关ci表单验证库
的文档http://ellislab.com/codeigniter%20/user-guide/libraries/form_validation.html