表单验证之unique
ci的那个表单验证unique,在插入时是好使的,但是在编辑的时候,它总是提示 field must contain a unique value,这不合理啊,编辑的时候肯定是存在这条记录啊,怎么办 也許是用法錯了 ? 他被判斷成新增了 ?需要你提供編輯時用的「控制器」與「視圖」才能進一步檢視 本帖最后由 Closer 于 2016-6-3 13:37 编辑
Closer 发表于 2016-6-3 10:11
也許是用法錯了 ? 他被判斷成新增了 ?
需要你提供編輯時用的「控制器」與「視圖」才能進一步檢視 ...
public function is_unique($str, $field)
{
// list($table, $field)=explode('.', $field);
// $query = $this->CI->db->limit(1)->get_where($table, array($field => $str));
//
// return $query->num_rows() === 0;
sscanf($field, '%[^.].%[^.]', $table, $field);
$result = $this->CI->db->query("desc $table")->result_array();
foreach ($result as $v) {
if ($v['Key'] == 'PRI') {
$pk = $v['Field'];
break;
}
}
$pk_value = $this->CI->input->post($pk);
return isset($this->CI->db) ? ($this->CI->db->limit(1)->where(array($field => $str, $pk . ' !=' => $pk_value))->get($table)->num_rows() === 0) : FALSE;
}
应该修改ci框架的is_unique方法,它这个有问题,上面是网上查到的解决方法,我试过了,好使
页:
[1]