在笨

2014-02-22 36 views
0

我只是想知道,我們可以在笨使用「匹配」的形式驗證規則..在笨

$this->form_validation->set_rules('marriage_id', 'Marriage ID','required|is_unique[marriage.marriage_id]|matches[person.marriage_id]'); 

marriage是我的表名和marriage_id是在該表中的字段。

Person是另一個表,它也有上面的控制器代碼marriage_idfield.From,我插入數據marriage表,我想知道,我可以檢查一下,它與人的表marriage_id或不匹配。

+1

您可能需要使用[回調函數(http://stackoverflow.com/questions/21439805/codeigniters -regex-match/21440204#21440204)作爲自定義驗證方法來搜索「Person」表以檢查當前'mariage_id'是否存在。 –

回答

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(); 
} 

更多參考下面檢查這個鏈接,文檔對詞的形式驗證庫

http://ellislab.com/codeigniter%20/user-guide/libraries/form_validation.html