This package provides a trait that adds the ability to paginate complex models.
This package can be installed through Composer.
$ composer require blasttech/laravel-paginate-plus
To add complex pagination behaviour to your model you must:
- specify that the model will conform to
Blasttech\PaginatePlus\PaginatePlus
- use the trait
Blasttech\PaginatePlus\PaginatePlusTrait
- specify the number of rows to paginate
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.
The MIT License (MIT). Please see License File for more information.