model = $model; } public function search($request) { // this grabs the search results from the db $terms = $request->index_search; $rawSearch = $terms; $terms = str_replace(",", "", $terms); $terms = str_replace(" ", "|", $terms); $raw = DB::select("SELECT * FROM searchlocations(?)", [$terms]); $results = []; foreach ($raw as $item) { if (($item->block_count + $item->silence_count) >= 2) { array_push($results, $item); } } return $results; } public function getLocation($uuid) { return $this->model::where("uuid", $uuid)->first(); } public function getActiveLocations() { return $this->model::where("active", true)->where('actions_count', '>=', 2)->get(); } public function getRecent() { return $locations = $this->model::where("active", true)->where('actions_count', '>=', 2) ->orderByDesc('updated_at')->limit(10)->get(); } public function getPage($pageNum) { $range = $pageNum * $this->limit - $this->limit; $active = $this->model::where("active", true)->where('actions_count', '>=', 2)->get(); $locations = $this->model::where("active", true)->where('actions_count', '>=', 2) ->limit($this->limit)->offset($range)->orderBy('id', 'asc')->get(); $pageCount = ceil(count($active) / $this->limit); $next = $pageNum + 1; if ($next > $pageCount) { $next = 1; } $prev = $pageNum - 1; if ($prev <= 0) { $prev = $pageCount; } return $result = [$locations, $pageCount, $prev, $next]; } }