codeigniter搜索过滤器模型

时间:2015-03-16 12:49:44

标签: codeigniter

我已经使用我的分页模型创建了一个搜索过滤器,当我输入我的过滤器时,如果我只有一个字母由于某种原因我的模型要求我 min 2 字母开始过滤

模型中最好的方法是什么,所以我的搜索字段只能在过滤器输入中输入一个字母

public function getUserGroups($limit = null, $offset = NULL) {
    $this->db->select("user_group_id, name");
    $this->db->from($this->db->dbprefix . 'user_group');
    $this->db->limit($limit, $offset);
    $this->db->order_by('name', 'asc');
    $data = array(
        'name' => $this->input->post('name'),
        'user_group_id' => $this->input->post('user_group_id')
    );
    $this->db->like($data);
    $this->db->or_like('name', 'match');
    $this->db->or_like('user_group_id', 'match');
    $query = $this->db->get();
    return $query->result_array();
}

1 个答案:

答案 0 :(得分:1)

我认为以下查询将解决您的问题

public function getUserGroups($limit = null, $offset = NULL) //better use $limit=0,$offset=0
{
$this->db->select("user_group_id, name");
$this->db->from($this->db->dbprefix . 'user_group');
$this->db->limit($limit, $offset);
$this->db->order_by('name', 'asc');
$data = array(
    'name' => $this->input->post('name'),
    'user_group_id' => $this->input->post('user_group_id')
);
$this->db->or_like($data);    
$query = $this->db->get();
return $query->result_array();
}

<强>记住
他们使用likeor_like的方式可能会产生错误的查询。请确保您的查询按照您的意愿正确生成