Hi Guys,
Today, I will learn you how to create pagination with laravel 8.If you want to full example of laravel 8 pagination example blade. if you have question about laravel 8 pagination with user table then i will give simple and easy example with solution for you. i explained simply step by step laravel 8 pagination tutorial. let’s talk about pagination in laravel 8.
We know pagination is a primary requisite of each and every project. so if you are a beginner with laravel than you must know how to utilize pagination in laravel 8 and what is other function that can utilize with laravel 8 pagination.
Now, In this example i will explain you from scratch how to working with laravel pagination. so let's follow bellow step by step tutorial for creating simple example of pagination with laravel 8.
Step 1: Add RouteFirst all of we put one route in one for list users with pagination. So simply add both routes in your route file.
routes/web.php<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ProductController; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('product', [ProductController::class, 'index']);Step 2: Create Controller
Same things as above for route, here we will add one new method for route. index() will return users with pagination data, so let's add bellow:
app/Http/Controllers/ProductController.php<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\Product; class ProductController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $data = Product::paginate(5); return view('product.index',compact('data')); } }Step 3: Create Blade File
After create ProductController you need to create index blade file and put bellow code with links() so it will generate pagination automatically. So let's put it.
resources/views/index.blade.php<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" /> <style type="text/css"> .form-inline{ display: inline; } </style> </head> <body class="bg-dark"> <div class="container mt-5"> <div class="row"> <div class="col-md-12"> <div class="card"> <div class="card-header"> <h3>Laravel 8 Pagination Example Tutorial</h3> </div> <div class="card-body"> <table class="table table-bordered table-hover"> <thead class="bg-secondary text-white"> <tr> <th>#</th> <th>Product Name</th> <th>Product Price</th> <th>Product Details</th> <th>Action</th> </tr> </thead> <tbody> @if(!empty($products) && $products->count()) @foreach($products as $key => $product) <tr> <td>{{ ++$key }}</td> <td>{{ $product->name }}</td> <td>{{ $product->price }}</td> <td>{{ $product->details }}</td> <td> <button class="btn btn-danger btn-icon"> <i class="far fa-trash-alt text-white" data-feather="delete"></i> </button> </td> </tr> @endforeach @else <tr> <td colspan="10">There are no data.</td> </tr> @endif </tbody> </table> {!! $products->links() !!} </div> </div> </div> </div> </div> </body> </html>
Now you can run and check this example. it is a very simple and basic example.
If you are using bootstrap then you have to add useBootstrap() on service provider as like bellow:
app\Providers\AppServiceProvider.php<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Pagination\Paginator; class AppServiceProvider extends ServiceProvider { /** * Register any application services. * * @return void */ public function register() { } /** * Bootstrap any application services. * * @return void */ public function boot() { Paginator::useBootstrap(); } }
If you need advance used of pagination then you can see bellow how to use.
Pagination with appends parameter
{!! $data->appends(['sort' => 'votes'])->links() !!}
Pagination with appends request all parameters
{!! $data->appends(Request::all())->links() !!}
You can also see in advance details from here: Laravel 8 Pagination.
It will help you..