The Fractal package serializes the paginator different than the Illuminate paginator. This trait brings the serialization of the Illuminate paginator back to a Fractal serializer. Extend your serializer of choice, use this trait and you're done!
You can install the package via composer:
composer require pbmedia/fractal-illuminate-paginator
Create your own Serializer
and use the trait from this package:
<?php
namespace Pbmedia\App\Serializers;
use League\Fractal\Serializer\DataArraySerializer as BaseSerializer;
use Pbmedia\Serializers\FractalIlluminatePaginatorTrait;
class DataArraySerializer extends BaseSerializer
{
use FractalIlluminatePaginatorTrait;
}
Without the trait, the pagination results will be like this:
{
data: [{
id: 1,
...
}, {
id: 2,
...
}, ...],
meta: {
pagination: {
total: 33,
count: 15,
per_page: 15,
current_page: 1,
total_pages: 3,
links: {
next: "http://project.dev/api/v1/company?page=2"
}
}
}
}
With the trait, the pagination results will be like this, just as you would convert a Illuminate\Pagination\LengthAwarePaginator
to JSON.
{
data: [{
id: 1,
...
}, {
id: 2,
...
}, ...],
meta: {
pagination: {
total: 33,
per_page: 15,
current_page: 1,
last_page: 3,
next_page_url: "http://project.dev/api/v1/company?page=2",
prev_page_url: null,
from: 1,
to: 15
}
}
}
If you discover any security related issues, please email pascal@pascalbaljetmedia.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.