grid = $grid; $this->initPaginator(); } /** * Initialize work for Paginator. * * @return void */ protected function initPaginator() { $this->paginator = $this->grid->model()->paginator(); if ($this->paginator instanceof LengthAwarePaginator) { $this->paginator->appends(request()->all()); } } /** * Get Pagination links. * * @return string */ protected function paginationLinks() { return $this->paginator->render('admin::grid.pagination'); } /** * Get per-page selector. * * @return string|null */ protected function perPageSelector() { if (! $this->grid->getPerPages()) { return; } return (new PerPageSelector($this->grid))->render(); } /** * Get range infomation of paginator. * * @return string|\Symfony\Component\Translation\TranslatorInterface */ protected function paginationRanger() { $parameters = [ 'first' => $this->paginator->firstItem(), 'last' => $this->paginator->lastItem(), 'total' => $this->paginator->total(), ]; $parameters = collect($parameters)->flatMap(function ($parameter, $key) { return [$key => "$parameter"]; }); $color = Admin::color()->dark80(); return "".trans('admin.pagination.range', $parameters->all()).''; } /** * Render Paginator. * * @return string */ public function render() { return $this->paginationRanger(). $this->paginationLinks(). $this->perPageSelector(); } }