public function searchPoi($sellzone_id, $q, $limit = 10, $offset = 0) { $collection = []; $pois = Model::PoiZone()->where(['sellzone_id', '=', (int) $sellzone_id])->get(); foreach ($pois as $poi) { $poi['name'] = str_replace(''', "'", $poi['name']); if (strlen($q)) { $comp = Inflector::lower(Inflector::unaccent($q)); $value = Inflector::lower(Inflector::unaccent($poi['name'])); $checkName = fnmatch("*{$comp}*", $value); $value = Inflector::lower(Inflector::unaccent($poi['type'])); $checkType = fnmatch("*{$comp}*", $value); if ($checkName || $checkType) { $collection[] = $poi; } } else { $collection[] = $poi; } } $collection = $this->orderSearch($collection, $q); return array_slice($collection, $offset, $limit); }