不需要回調。您可以改用is_unique
。
$this->form_validation->set_rules("firstname","First Name"."required|is_unique[tablename.columnname]");
$this->form_validation->set_rules("lastname","last Name"."required|is_unique[tablename.columnname]");
或者,如果你想使用回調,使用,
$this->form_validation->set_rules("firstname","First Name"."required|callback_check_name");
public function check_name($str)
{
$res = $this->db->get_where("users",array("fname" => $str));
if($res->num_rows()){
$this->form_validation->set_message('check_name', 'The %s field already exists.');
return false;
} else {
return true;
}
}
所以,現在你必須寫2個回調函數來處理表單驗證。你可以像這樣只有一個回調。
$this->form_validation->set_rules("firstname","First Name"."required|callback_check_name[firstname]");
$this->form_validation->set_rules("firstname","First Name"."required|callback_check_name[lastname]");
public function check_name($str,$col)//passing one more parameter.
{
$res = $this->db->get_where("users",array($col => $str));
if($res->num_rows()){
$this->form_validation->set_message('check_name', 'The %s field already exists.');
return false;
} else {
return true;
}
}
我想你的意見,但仍然沒有工作的鏈接。相反,我換成了「。」用「,」和現在系統表示「姓氏字段必須包含一個唯一值。 名字字段必須包含一個唯一值。」 – claudios
你有沒有改變表名和列名? –
您嘗試過哪種方法? 'is_unique'或'callbacks'? –