blasttech/laravel-paginate-plus

Extra paginate functions for Laravel


Keywords
model, laravel, eloquent, paginate
License
MIT

Documentation

Extra functionality for Laravel pagination

Latest Version Build Status Quality Score Software License StyleCI Total Downloads

This package provides a trait that adds the ability to paginate complex models.

Installation

This package can be installed through Composer.

$ composer require blasttech/laravel-paginate-plus

Usage

To add complex pagination behaviour to your model you must:

  1. specify that the model will conform to Blasttech\PaginatePlus\PaginatePlus
  2. use the trait Blasttech\PaginatePlus\PaginatePlusTrait
  3. specify the number of rows to paginate

Example

use Blasttech\PaginatePlus\PaginatePlus;
use Blasttech\PaginatePlus\PaginatePlusTrait;

class MyModel extends Eloquent implements PaginatePlus
{
    use PaginatePlusTrait;
    
    public function getCustomers()
    {
        return Customer::addSelect(DB::raw('REPLACE(customer_name, 'Pty Ltd', '') AS customer'))
            ->groupBy('customer')
            ->paginatePlus(25); 
    }
    
    ...
}

This will create a LengthAwarePaginator of 25 records. If no value is provided for the number of records to show, the model's per_page value (defaults to 15) will be used.

Normally, you wouldn't be able to paginate when there is a grouped calculated field, but with this package you can.

License

The MIT License (MIT). Please see License File for more information.