diff --git a/src/Illuminate/Pagination/Pagination.php b/src/Illuminate/Pagination/Pagination.php new file mode 100644 index 000000000000..e1f04b78bf95 --- /dev/null +++ b/src/Illuminate/Pagination/Pagination.php @@ -0,0 +1,55 @@ +paginator instanceof LengthAwarePaginator) { + //get elements + $window = UrlWindow::make($this->paginator); + + $elements = array_filter([ + $window['first'], + is_array($window['slider']) ? '...' : null, + $window['slider'], + is_array($window['last']) ? '...' : null, + $window['last'], + ]); + } + + //determine view + $view = $this->view ?? $this->paginator instanceof LengthAwarePaginator + ? AbstractPaginator::$defaultView + : AbstractPaginator::$defaultSimpleView; + + //load view + return view($view) + ->with([ + ...$this->data, + 'paginator' => $this->paginator, + 'elements' => $elements ?? [], + ]); + } +} diff --git a/src/Illuminate/Pagination/PaginationServiceProvider.php b/src/Illuminate/Pagination/PaginationServiceProvider.php index e94cebd6caf7..d0ca2d31c4af 100755 --- a/src/Illuminate/Pagination/PaginationServiceProvider.php +++ b/src/Illuminate/Pagination/PaginationServiceProvider.php @@ -2,6 +2,7 @@ namespace Illuminate\Pagination; +use Illuminate\Support\Facades\Blade; use Illuminate\Support\ServiceProvider; class PaginationServiceProvider extends ServiceProvider @@ -15,6 +16,8 @@ public function boot() { $this->loadViewsFrom(__DIR__.'/resources/views', 'pagination'); + Blade::component('laravel::pagination', Pagination::class); + if ($this->app->runningInConsole()) { $this->publishes([ __DIR__.'/resources/views' => $this->app->resourcePath('views/vendor/pagination'),