Great pagination generator for Laravel
1, 2, 3, 4, 5, ..., 20
1, ..., 12, 13, 14, ..., 20
1, ..., 16, 17, 18, 19, 20
php: >=8.0
laravel/framework: ^9.0
# Install the package
composer require stepanenko3/laravel-pagination
Create your own database builder in app\Builders\BaseBuilder.php
use Stepanenko3\LaravelPagination\Pagination;
use Illuminate\Database\Eloquent\Builder;
class BaseBuilder extends Builder
{
public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
{
$page = $page ?: Pagination::resolveCurrentPage($pageName);
$perPage = $perPage ?: $this->model->getPerPage();
$results = ($total = $this->toBase()->getCountForPagination())
? $this->forPage($page, $perPage)->get($columns)
: $this->model->newCollection();
return new Pagination($results, $total, $perPage, $page, [
'path' => Pagination::resolveCurrentPath(),
'pageName' => $pageName,
]);
}
}
Or use without database builder
new Pagination(
$items,
$total,
$perPage,
$currentPage,
);
Thank you for considering contributing to this package! Please create a pull request with your contributions with detailed explanation of the changes you are proposing.
This package is open-sourced software licensed under the MIT license.