public function search($fields, $termString) { $condition = new self($this->database); $terms = preg_split('#(\\s+)#', $termString); $terms = array_filter($terms); if (!empty($fields) && !empty($terms)) { foreach ($terms as $term) { $innerCondition = new self($this->database); foreach ($fields as $field) { $innerCondition->orLike($field, '[^A-Za-z0-9]' . $term . '%'); $innerCondition->orLike($field, $term . '%'); } $condition->condition($innerCondition); } $this->condition($condition); } else { $this->raw('1 = 1'); } }
public function search($fields, $termString) { $condition = new self($this->database); $terms = preg_split('#(\\s+)#', $termString); $terms = array_filter($terms); if (!empty($fields) && !empty($terms)) { foreach ($terms as $term) { $innerCondition = new self($this->database); foreach ($fields as $field) { $innerCondition->orRegexp($field, '[[:<:]]' . preg_quote($term)); } $condition->condition($innerCondition); } $this->condition($condition); } else { $this->raw('1 = 1'); } }