2017 © Pedro Peláez
 

library laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

image

hungnm144/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  • Sunday, April 1, 2018
  • by hungnm144
  • Repository
  • 1 Watchers
  • 0 Stars
  • 9 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 35 Forks
  • 0 Open issues
  • 28 Versions
  • 0 % Grown

The README.md

Laravel Paginate Route

Latest Version on Packagist Software License Build Status Quality Score StyleCI Total Downloads, (*1)

This package adds the paginate route method to support pagination via custom routes instead of query strings. This also allows for easily translatable pagination routes ex. /news/page/2, /nieuws/pagina/2., (*2)

Spatie is a webdesign agency in Antwerp, Belgium. You'll find an overview of all our open source projects on our website., (*3)

Note: If you're upgrading to 2.0, check out the upgrade guide below., (*4)

Postcardware

You're free to use this package (it's MIT-licensed), but if it makes it to your production environment you are required to send us a postcard from your hometown, mentioning which of our package(s) you are using., (*5)

Our address is: Spatie, Samberstraat 69D, 2060 Antwerp, Belgium., (*6)

The best postcards will get published on the open source page on our website., (*7)

Install

Via Composer, (*8)

``` bash $ composer require hungnm144/laravel-paginateroute, (*9)


First register the service provider and facade in your application. ```php // config/app.php 'providers' => [ ... 'Spatie\PaginateRoute\PaginateRouteServiceProvider', ]; 'aliases' => [ ... 'PaginateRoute' => 'Spatie\PaginateRoute\PaginateRouteFacade', ];

Then register the macros in App\Providers\RouteServiceProvider::boot()., (*10)

// app/Providers/RouteServiceProvider.php

use PaginateRoute;

// ...

public function boot()
{
    PaginateRoute::registerMacros();

    parent::boot();
}

Usage

The paginate route macro will register two routes for you., (*11)

// app/Http/routes.php

// Generates /users & /users/page/{page}
Route::paginate('users', 'UsersController@index');

In your route's action you can just use Laravel's regular pagination methods., (*12)

// app/Http/Controllers/UsersController.php

public function index()
{
    return view('users.index', ['users' => \App\User::simplePaginate(5)]);
}

If you want to customize or add translations for the "page" url segment, you can publish the language files., (*13)

``` bash $ php artisan vendor:publish --provider="Spatie\PaginateRoute\PaginateRouteServiceProvider", (*14)


### Generating Url's Since Laravel's paginator url's will still use a query string, PaginateRoute has it's own url generator and page helper functions.

{{-- $users is an instance of \Illuminate\Contracts\Pagination\Paginator --}}, (*15)

@if(PaginateRoute::hasPreviousPage()) Previous @endif, (*16)

@if(PaginateRoute::hasNextPage($users)) Next @endif, (*17)


The `nextPage` functions require the paginator instance as a parameter, so they can determine whether there are any more records. ```php /** * @param \Illuminate\Contracts\Pagination\Paginator $paginator * @return int|null */ public function nextPage(Paginator $paginator)
/**
 * @param  \Illuminate\Contracts\Pagination\Paginator $paginator
 * @return bool
 */
public function hasNextPage(Paginator $paginator)
/**
 * @param  \Illuminate\Contracts\Pagination\Paginator $paginator
 * @return string|null
 */
public function nextPageUrl(Paginator $paginator)
/**
 * @return int|null
 */
public function previousPage()
/**
 * @return bool
 */
public function hasPreviousPage()
/**
 * @param  bool $full
 * @return string|null
 */
public function previousPageUrl($full = false)
/**
 * @param int  $page
 * @param bool $full
 * @return string
 */
public function pageUrl($page, $full = false)

If $full is true, the first page will be a fully qualified url. Ex. /users/page/1 instead if just /users (this is the default)., (*18)

To retrieve the url of a specific page of a paginated route, that isn't the current route, there's the addPageQuery function., (*19)

/**
 * @param string $url
 * @param int $page
 * @param bool $full
 * @return string
 */
public function addPageQuery($url, $page, $full = false)

You can also retrieve an array with all available urls. These can be rendered as a plain html list with page numbers. Note that these functions require a LengthAwarePaginator., (*20)

/**
 * @param  \Illuminate\Contracts\Pagination\LengthAwarePaginator $paginator
 * @param  bool $full
 * @return array
 */
public function allUrls(LengthAwarePaginator $paginator, $full = false)
/**
 * @param  \Illuminate\Contracts\Pagination\LengthAwarePaginator $paginator
 * @param  bool $full
 * @param  string $class
 * @param  bool $additionalLinks
 * @return string
 */
public function renderPageList(LengthAwarePaginator $paginator, $full = false, $class = null, $additionalLinks = false)
<!-- Example output: -->
<ul class="pagination">
    <li><a href="http://example.com/news">1</a></li>
    <li><a href="http://example.com/news/page/2">2</a></li>
    <li class="active"><a href="http://example.com/news/page/3">3</a></li>
    <li><a href="http://example.com/news/page/4">4</a></li>
    <li><a href="http://example.com/news/page/4">&raquo;</a></li>
</ul>

You can render link tags to mark previous and next page for SEO. Note that these functions require a LengthAwarePaginator., (*21)

/**
 * @param  \Illuminate\Contracts\Pagination\LengthAwarePaginator $paginator
 * @param  bool $full
 * @return string
 */
public function renderRelLinks(LengthAwarePaginator $paginator, $full = false)
<!-- Example output: -->
<link rel="prev" href="http://example.com/news/page/2" />
<link rel="next" href="http://example.com/news/page/4" />

Tests

The package contains some integration/smoke tests, set up with Orchestra. The tests can be run via phpunit., (*22)

$ phpunit

Upgrading

1.x => 2.0

The 2.0 release changes the route macro to only register one route with the entire query in it, so providing a page parameter to the action link is no longer possible., (*23)

For example, action('FooController@bar', ['page' => 3]) is no longer possible, and should be replaced by PaginateRoute::addPageQuery(action('FooController@bar'), 3)., (*24)

Changelog

Please see CHANGELOG for more information what has changed recently., (*25)

Contributing

Please see CONTRIBUTING for details., (*26)

Security

If you discover any security related issues, please email freek@spatie.be instead of using the issue tracker., (*27)

Credits

About Spatie

Spatie is a webdesign agency in Antwerp, Belgium. You'll find an overview of all our open source projects on our website., (*28)

License

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

The Versions

01/04 2018

dev-master

9999999-dev https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

01/04 2018

2.6.4.2

2.6.4.2 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

26/03 2018

2.6.4.1

2.6.4.1 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

11/03 2018

2.6.4

2.6.4.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

02/11 2017

2.6.3

2.6.3.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

02/11 2017

2.6.2

2.6.2.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

30/10 2017

2.6.0

2.6.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

30/10 2017

2.6.1

2.6.1.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

14/05 2017

2.5.0

2.5.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

01/02 2017

2.4.1

2.4.1.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

27/01 2017

5.3.x-dev

5.3.9999999.9999999-dev https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

16/12 2016

2.3.0

2.3.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

20/05 2016

2.2.2

2.2.2.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

05/05 2016

2.2.1

2.2.1.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

05/02 2016

2.2.0

2.2.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

21/01 2016

2.1.0

2.1.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

30/12 2015

2.0.2

2.0.2.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

30/12 2015

2.0.1

2.0.1.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

14/08 2015

2.0.0

2.0.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

21/07 2015

1.6.1

1.6.1.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

16/07 2015

1.6.0

1.6.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

15/07 2015

1.5.0

1.5.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

14/07 2015

1.4.0

1.4.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.4.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

26/06 2015

1.3.0

1.3.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

17/06 2015

1.2.0

1.2.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

12/06 2015

1.1.1

1.1.1.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

06/06 2015

1.1.0

1.1.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute

03/06 2015

1.0.0

1.0.0.0 https://github.com/spatie/laravel-paginateroute

Laravel outer extension to easily use laravel's paginator without the query string

  Sources   Download

MIT

The Requires

  • php >=5.5.0

 

The Development Requires

laravel pagination routing spatie laravel-paginateroute