2015-03-16 2 views
0

Я создал фильтр поиска с моей постраничной моделью, когда я печатаю в моем фильтре не подобрать, если я просто одна буквы по какой-то причине моей модели требует, чтобы у меня мин 2 буквы для начала фильтрацииCodeIgniter фильтр поиска модель

Что является лучшим методом в модели, поэтому в моем поле поиска можно получить только одна буква, введенная на вход фильтра.

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

Почему вы добавили '$ this-> db-> or_like ('name', 'match'); $ this-> db-> or_like ('user_group_id', 'match'); '? Вы действительно хотите найти слово 'match'? –

ответ

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

Запомнить
Они, как вы с помощью like и or_like может привести неправильный query.Make, что ваш запрос продуцирующие правильный путь, как вы хотели

Смежные вопросы