New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

danbovey/laravel-linkheader-paginator

Laravel Paginator that moves pagination info to the HTTP LinkHeader
4,071 3
Install
composer require danbovey/laravel-linkheader-paginator
Latest Version:1.0.1
Older releases:5
License:MIT
Last Updated:Nov 8, 2016
Links: GitHub  ·  Packagist
Maintainer: danbovey

Laravel LinkHeader Paginator

Travis Packagist Downloads Version License

A custom Laravel/Lumen Paginator that uses the Link header (RFC 5988) to send pagination info in the response. Removes the envelope around data!

Adds a method called toResponse that returns a JSON response with headers. The getHeaders method exists if you need different response data.

Installation

$ composer require danbovey/laravel-linkheader-paginator

Usage

Create the pagination with the Eloquent/DB Builder and pass it to the LengthAwarePaginator.

$items = User::where('active', 1)->paginate(20);

$paginator = new LengthAwarePaginator($items);

return $paginator->toResponse();

"Simple Pagination"

The simple paginator does not need to know the total number of items in the result set; however, because of this, the class does not return the URI of the last page. Ironically, the simple paginator is more work using this library. To save on queries you should skip using the methodsimplePaginate, and implement the skip/take logic yourself.

$page = $request->get('page');
$perPage = 20;
// Take one more than needed to see if there is a next page
$users = User::skip(($page - 1) * $perPage)
    ->take($perPage + 1);

$paginator = new Paginator($simple, $items);

return $paginator->toResponse();

Related Packages

usmanhalalit/strana

Pagination library for PHP, framework agnostic, with built-in adapters for Doctr...

7,427 93
ge-tracker/laravel-redis-paginator

Create a Laravel Paginator or LengthAwarePaginator from a Redis sorted set

6,060 5
s-damian/laravel-man-pagination

Laravel Pagination library

2,795 2
juniora/laravel-redis-paginator

Create a Laravel Paginator or LengthAwarePaginator from a Redis sorted set

1,609 0

Version History

Version Released Laravel License
1.0.1 MIT
1.0.0 ^5.3 MIT