/** * Get the previous page pagination element. * * @param string $text * * @return string */ public function getPreviousButton($text = '«') { // If the current page is less than or equal to one, it means we can't go any // further back in the pages, so we will render a disabled previous button // when that is the case. Otherwise, we will give it an active "status". if ($this->paginator->currentPage() <= 1) { return '<li class="arrow unavailable has-form"><a>' . $text . '</a></li>'; } else { $url = $this->paginator->previousPageUrl(); return '<li class="arrow has-form"><a href="' . $url . '">' . $text . '</a></li>'; } }
/** * Respond with a pagination response. * * @param \Illuminate\Pagination\Paginator $paginator * @param \Illuminate\Http\Request $request * * @return \Illuminate\Http\JsonResponse */ protected function paginator(Paginator $paginator, Request $request) { foreach ($request->query as $key => $value) { if ($key != 'page') { $paginator->addQuery($key, $value); } } $pagination = ['pagination' => ['total' => (int) $paginator->total(), 'count' => count($paginator->items()), 'per_page' => (int) $paginator->perPage(), 'current_page' => (int) $paginator->currentPage(), 'total_pages' => (int) $paginator->lastPage(), 'links' => ['next_page' => $paginator->nextPageUrl(), 'previous_page' => $paginator->previousPageUrl()]]]; $items = $paginator->getCollection(); if ($sortBy = $request->get('sort')) { $direction = $request->has('order') && $request->get('order') == 'desc'; $items = $items->sortBy($sortBy, SORT_REGULAR, $direction); } return $this->setMetaData($pagination)->setData(AutoPresenter::decorate($items->values()))->respond(); }
/** * Respond with a pagination response. * * @param \Illuminate\Pagination\Paginator $paginator * @param \Illuminate\Http\Request $request * * @return \Illuminate\Http\JsonResponse */ protected function paginator(Paginator $paginator, Request $request) { foreach ($request->query as $key => $value) { if ($key != 'page') { $paginator->addQuery($key, $value); } } $pagination = ['pagination' => ['total' => $paginator->total(), 'count' => count($paginator->items()), 'per_page' => $paginator->perPage(), 'current_page' => $paginator->currentPage(), 'total_pages' => $paginator->lastPage(), 'links' => ['next_page' => $paginator->nextPageUrl(), 'previous_page' => $paginator->previousPageUrl()]]]; return $this->setMetaData($pagination)->setData(AutoPresenter::decorate($paginator->getCollection()))->respond(); }