/** * Get a URL for a given page number. * * @param int $page * @return string */ public function getUrl($page) { $url = $this->env->getCurrentUrl() . '?page=' . $page; // If we have any extra query string key / value pairs that need to be added // onto the URL, we will put them in query string form and then attach it // to the URL. This allows for extra information like sortings storage. if (count($this->query) > 0) { $url = $url . '&' . http_build_query($this->query); } return $url; }
/** * 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); }