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 Route
First 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..