https://github.com/amamarul/laravel-paginator
Laravel Paginator for Collections or Arrays
https://github.com/amamarul/laravel-paginator
laravel laravel-54 laravel-54-paginate laravel-paginator paginate-array paginate-collection
Last synced: about 1 month ago
JSON representation
Laravel Paginator for Collections or Arrays
- Host: GitHub
- URL: https://github.com/amamarul/laravel-paginator
- Owner: amamarul
- Created: 2017-03-15T01:03:19.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-03-15T01:33:51.000Z (over 9 years ago)
- Last Synced: 2025-07-18T14:50:14.077Z (11 months ago)
- Topics: laravel, laravel-54, laravel-54-paginate, laravel-paginator, paginate-array, paginate-collection
- Language: PHP
- Size: 2.93 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Laravel Paginator
Make the pagination for arrays or Collections
## Installation
### Composer require
``` bash
$ composer require amamarul/laravel-paginator
```
### Add Provider into config/app.php
``` php
Amamarul\Paginator\PaginatorServiceProvider::class,
```
### Usage
#### In Controller
- Array
``` php
use Amamarul\Paginator\Paginator;
use Illuminate\Http\Request;
public function index(Request $request)
{
$currentPage = isset($request['page']) ? (int) $request['page'] : 1;
$perPage = 1;
$path = $request->path();
$items = array_map(function ($value) {
return [
'name' => 'User #' . $value,
'url' => '/user/' . $value,
];
}, range(1,1000));
$paginator = new Paginator($items);
$paginator = $paginator->paginate($currentPage,$perPage, $path);
return view('index')->with('paginator', $paginator);
}
```
- Collection
``` php
use App\User;
use Amamarul\Paginator\Paginator;
use Illuminate\Http\Request;
public function index(Request $request)
{
$currentPage = isset($request['page']) ? (int) $request['page'] : 1;
$perPage = 1;
$path = $request->path();
$items = User::with('profile')->get()->sortBy('profile.name');
$paginator = new Paginator($items);
$paginator = $paginator->paginate($currentPage,$perPage, $path);
return view('index')->with('paginator', $paginator);
}
```
#### In Blade View (index.blade.php)
``` php
@foreach ($paginator->items() as $element)
{!!$element['name']!!}
@endforeach
{!! $paginator->render() !!}
```
#### Customize Page Name
By default the url has `page` name
`http://127.0.0.1:8000/?page=3`
If you´d like to change the page name yo must only add a fourth parameter with the name.
Like this
``` php
use App\User;
use Amamarul\Paginator\Paginator;
use Illuminate\Http\Request;
public function index(Request $request)
{
$currentPage = isset($request[$pageName]) ? (int) $request[$pageName] : 1;
$perPage = 1;
$path = $request->path();
$pageName = 'custom-name';
$items = User::with('profile')->get()->sortBy('profile.name');
$paginator = new Paginator($items);
$paginator = $paginator->paginate($currentPage,$perPage, $path, $pageName);
return view('index')->with('paginator', $paginator);
}
```
### Feel free to send improvements
Created by [Maru Amallo-amamarul][760a7857]
[760a7857]: https://github.com/amamarul "https://github.com/amamarul"