在codeigniter中'匹配'表单验证规则

时间:2014-02-22 09:23:32

标签: forms codeigniter validation

我只想知道我们可以在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是否匹配。

2 个答案:

答案 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