/** * Get the current page for the request. * * @param int $lastPage * @return int */ protected function calculateCurrentPage($lastPage) { $page = $this->env->getCurrentPage(); // The page number will get validated and adjusted if it either less than one // or greater than the last page available based on the count of the given // items array. If it's greater than the last, we'll give back the last. if (is_numeric($page) and $page > $lastPage) { return $lastPage > 0 ? $lastPage : 1; } return $this->isValidPageNumber($page) ? $page : 1; }
/** * Create a paginator for an un-grouped pagination statement. * * @param Illuminate\Pagination\Environment $paginator * @param int $perPage * @param array $columns * @return Illuminate\Pagination\Paginator */ protected function ungroupedPaginate($paginator, $perPage, $columns) { $total = $this->getPaginationCount(); // Once we have the total number of records to be paginated, we can grab the // current page and the result array. Then we are ready to create a brand // new Paginator instances for the results which will create the links. $page = $paginator->getCurrentPage(); $results = $this->forPage($page, $perPage)->get($columns); return $paginator->make($results, $total, $perPage); }
/** * Get a paginator for an ungrouped statement. * * @param Illuminate\Pagination\Environment $paginator * @param int $perPage * @param array $columns * @return Illuminate\Pagination\Paginator */ protected function ungroupedPaginate($paginator, $perPage, $columns) { $total = $this->query->getPaginationCount(); // Once we have the paginator we need to set the limit and offset values for // the query so we can get the properly paginated items. Once we have an // array of items we can create the paginator instances for the items. $page = $paginator->getCurrentPage(); $this->query->forPage($page, $perPage); return $paginator->make($this->get($columns)->all(), $total, $perPage); }