/** * @param int $page * @param string $query * @param int $amount * @return \Filmoteca\Pagination\Results */ public function paginate($page = 1, $query = '', $amount = 15) { $results = Results::make(); $resources = $this->resource->whereHas('exhibitionFilm', function ($q) use($query) { $q->whereHas('film', function ($q) use($query) { $q->where('films.title', 'like', '%' . $query . '%'); }); })->orderBy('id', 'desc')->skip($amount * ($page - 1))->take($amount)->with('exhibitionFilm', 'exhibitionFilm.film')->get(); $total = $this->resource->whereHas('exhibitionFilm', function ($q) use($query) { $q->whereHas('film', function ($q) use($query) { $q->where('films.title', 'like', '%' . $query . '%'); }); })->count(); $results->setTotal($total); $results->setItems($resources); return $results; }
/** * @param int $page * @param string $query * @param int $itemsPerPage * @return \Filmoteca\Pagination\Results */ public function paginate($page = 1, $query = '', $itemsPerPage = 15) { $results = Results::make(); $films = $this->resource->where('title', 'like', '%' . $query . '%')->whereOr('original_title', 'like', '%' . $query . '%')->orderBy('created_at', 'DESC')->skip(($page - 1) * $itemsPerPage)->take($itemsPerPage)->get(); $totalFilms = $this->resource->where('title', 'like', '%' . $query . '%')->whereOr('original_title', 'like', '%' . $query . '%')->count(); $results->setItems($films); $results->setTotal($totalFilms); return $results; }