/** * @param LengthAwarePaginator $paged * * @return PaginatedRepresentation */ public function formateHatoeasPaged(LengthAwarePaginator $paged) { $request = \App::make('request'); $params = array_merge($request->route()[2], $request->all()); return new PaginatedRepresentation(new CollectionRepresentation($paged->getCollection(), null, $request->path()), $request->route()[1]['as'], $params, $paged->currentPage(), $paged->perPage(), $paged->lastPage(), 'page', 'per_page', true, $paged->total()); }
/** * @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()]; }
$useLengthAware = true; // Paginator class example if (!$useLengthAware) { $paginatorItems = array_slice($items, $offset); $results = new Paginator($paginatorItems, $perPage, $currentPage, $options); } // End of Paginator example // LengthAwarePaginator class example if ($useLengthAware) { $lengthAwarePaginatorItems = array_slice($items, $offset, $perPage); $results = new LengthAwarePaginator($lengthAwarePaginatorItems, $total, $perPage, $currentPage, $options); } // End of LengthAwarePaginator example // Display a paginated table of our array echo '<h1>I love hashes</h1>'; echo '<table>'; foreach ($results as $result) { echo "\n <tr>\n <td>{$result['id']}</td>\n <td>{$result['hash']}</td>\n </tr>"; } echo '<table>' . "\n"; echo $results->appends($_GET)->render(); echo 'Current Page: ' . $results->currentPage(); echo '<br>Items Per Page: ' . $results->perPage(); // The following methods are only available when using the LengthAwarePaginator instance if ($useLengthAware) { echo '<br>From ' . $results->firstItem() . ' to ' . $results->lastItem(); echo '<br>Total Items: ' . $results->total(); echo '<br>Last Page: ' . $results->lastPage(); } }); $app->run();
/** * 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; }
/** * @param \Illuminate\Pagination\LengthAwarePaginator $data * @return array */ public function getPaginationToArray($data) { $list = []; if ($data->lastPage() > 1) { $window = \Illuminate\Pagination\UrlWindow::make($data); $elements = [$window['first'], is_array($window['slider']) ? '...' : null, $window['slider'], is_array($window['last']) ? '...' : null, $window['last']]; if ($url = $data->previousPageUrl() ?: '') { $list[] = $this->getItemForPagination('', '«', $url, 'prev', $data->currentPage() - 1); } foreach ($elements as $item) { if (is_string($item)) { $list[] = $this->getItemForPagination('disabled', $item); } if (is_array($item)) { foreach ($item as $page => $url) { if ($page == $data->currentPage()) { $list[] = $this->getItemForPagination('active', $page); } else { $list[] = $this->getItemForPagination('', '', $url, '', $page); } } } } if ($data->hasMorePages()) { $list[] = $this->getItemForPagination('', '»', $data->nextPageUrl(), 'next', $data->currentPage() + 1); } } return $list; }
public function paginate(LengthAwarePaginator $paginator) { return ["count" => $paginator->count(), "current_page" => $paginator->currentPage(), "last_page" => $paginator->lastPage(), "per_page" => $paginator->perPage(), "total" => $paginator->total()]; }
/** * [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, ", "); }