Skip to content

stepanenko3/laravel-pagination

Repository files navigation

Laravel Pagination

Latest Version on Packagist Total Downloads License

Description

Great pagination generator for Laravel

Examples

1, 2, 3, 4, 5, ..., 20

1, ..., 12, 13, 14, ..., 20

1, ..., 16, 17, 18, 19, 20

Requirements

  • php: >=8.0
  • laravel/framework: ^9.0

Installation

# Install the package
composer require stepanenko3/laravel-pagination

Usage

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,
);

Credits

Contributing

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.

License

This package is open-sourced software licensed under the MIT license.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages