diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index a3bb719289e5f183afa1f8f072baf7e6be278b40..1f9e8b5311520a6f5a5d8fbbe144bf83c6cfb937 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -4,6 +4,8 @@ namespace App\Providers; use Illuminate\Pagination\Paginator; use Illuminate\Support\ServiceProvider; +use Illuminate\Support\Collection; +use Illuminate\Pagination\LengthAwarePaginator; class AppServiceProvider extends ServiceProvider { @@ -26,5 +28,20 @@ class AppServiceProvider extends ServiceProvider { Paginator::useBootstrap(); + Collection::macro('paginate', function($perPage, $total = null, $page = null, $pageName = 'page'): LengthAwarePaginator { + $page = $page ?: LengthAwarePaginator::resolveCurrentPage($pageName); + + return new LengthAwarePaginator( + $this->forPage($page, $perPage)->values(), + $total ?: $this->count(), + $perPage, + $page, + [ + 'path' => LengthAwarePaginator::resolveCurrentPath(), + 'pageName' => $pageName, + ] + ); + }); + } }