Skip to content

blasttech/laravel-paginate-plus

Repository files navigation

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.