/** * @param LengthAwarePaginator|LengthAwarePaginatorContract $paginator * @param string $dataKey * * @return array */ protected function paginatorToArray(LengthAwarePaginator $paginator, $dataKey = 'items') { return ['total' => $paginator->total(), 'perPage' => $paginator->perPage(), 'currentPage' => $paginator->currentPage(), 'lastPage' => $paginator->lastPage(), 'nextPageUrl' => $paginator->nextPageUrl(), 'prevPageUrl' => $paginator->previousPageUrl(), 'from' => $paginator->firstItem(), 'to' => $paginator->lastItem(), $dataKey => $paginator->items()]; }
public function nextPageUrl() { return $this->appendQueryParametersToUrl(parent::nextPageUrl()); }
/** * @param LengthAwarePaginator $paginatorData * @param $data * * @return mixed */ public function respondWithPagination(LengthAwarePaginator $paginatorData, $data) { $data = array_merge($data, ['paginator' => ['total_count' => $paginatorData->total(), 'total_pages' => ceil($paginatorData->total() / $paginatorData->perPage()), 'current_page' => $paginatorData->currentPage(), 'limit' => $paginatorData->count(), 'next_page_url' => $paginatorData->nextPageUrl()]]); return $this->respond($data); }
/** * Return pagination links as array * @param LengthAwarePaginator $paginator * @return array */ protected function getPaginationLinks($paginator) { $links = []; $links['self'] = urldecode($paginator->url($paginator->currentPage())); $links['first'] = urldecode($paginator->url(1)); $links['last'] = urldecode($paginator->url($paginator->lastPage())); $links['prev'] = urldecode($paginator->url($paginator->currentPage() - 1)); if ($links['prev'] === $links['self'] || $links['prev'] === '') { $links['prev'] = null; } $links['next'] = urldecode($paginator->nextPageUrl()); if ($links['next'] === $links['self'] || $links['next'] === '') { $links['next'] = null; } return $links; }
/** * [buildHeaderLinks description] * @param Paginator $collection [description] * @return [type] [description] */ private function buildHeaderLinks(Paginator $collection) { $links = array(); if ($collection->nextPageUrl()) { $links[] = $this->buildHeaderLink('next', $collection->nextPageUrl(), $collection->perPage()); } if ($collection->previousPageUrl()) { $links[] = $this->buildHeaderLink('prev', $collection->previousPageUrl(), $collection->perPage()); } $links[] = $this->buildHeaderLink('first', $collection->url(1), $collection->perPage()); $links[] = $this->buildHeaderLink('last', $collection->url($collection->lastPage()), $collection->perPage()); return join($links, ", "); }