How to Add Pagination in Laravel?
Hey Friends,
In this tute, we will discuss how to add pagination in laravel. you can understand a concept of how to include pagination in laravel. If you have a question about laravel pagination example then I will give a simple example with a solution. step by step explain laravel pagination example blade. Let's get started with laravel simple pagination example.
We know pagination is a primary requirement of each and every project. so if you are a beginner with laravel then you must know how to use pagination in laravel and what is another function can use with laravel pagination.
In this example, we will run the migration and create a "users" table. Then we will create dummy records using the tinker command. Then we will display that users with pagination. by default laravel pagination use Tailwind CSS design, we will use bootstrap 5 design for pagination here.
So, let's follow below tutorials:
Step 1: Install Laravel
This is optional; however, if you have not created the laravel app, then you may go ahead and execute the below command:
composer create-project laravel/laravel example-app
Step 2: Database Configuration
In second step, we will make database configuration for example database name, username, password etc for our crud application of laravel. So let's open .env file and fill all details like as bellow:
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name(blog)
DB_USERNAME=here database username(root)
DB_PASSWORD=here database password(root)
Step 3: Create Dummy Users
In this step, we need to run migration command to create users table and then create dummy users records so we can see pagination.
Let's run migration command:
php artisan migrate
Next, run ticker command to add dummy users:
php artisan tinker
User::factory()->count(100)->create()
Step 4: Add Route
First thing is we put one route in one for list users with pagination. So simple add both routes in your route file.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;
/*
|--------------------------------------------------------------------------
| 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('users', [UserController::class, 'index']);
Step 5: 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/UserController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\View\View;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request): View
{
$users = User::paginate(5);
return view('users', compact('users'));
}
}
Step 6: Create Blade File
In this step, you need to create users blade file and put bellow code with links() so it will generate pagination automatically. So let's put it.
resources/views/users.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Laravel Pagination Example - ItSolutionStuff.com</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.0.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h1>Laravel Pagination Example - ItSolutionStuff.com</h1>
<table class="table table-bordered data-table">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
@forelse($users as $user)
<tr>
<td>{{ $user->id }}</td>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
</tr>
@empty
<tr>
<td colspan="3">There are no users.</td>
</tr>
@endforelse
</tbody>
</table>
<!--
You can use Tailwind CSS Pagination as like here:
{!! $users->withQueryString()->links() !!}
-->
{!! $users->withQueryString()->links('pagination::bootstrap-5') !!}
</div>
</body>
</html>
Run Laravel App:
All the required steps have been done, now you have to type the given below command and hit enter to run the Laravel app:
php artisan serve
Now, Go to your web browser, type the given URL and view the app output:
http://localhost:8000/users
Output:
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() !!}
I hope it can help you....
Hardik Savani
I'm a full-stack developer, entrepreneur and owner of ItSolutionstuff.com. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Laravel, Angular, Vue, Node, Javascript, JQuery, Codeigniter and Bootstrap from the early stage. I believe in Hardworking and Consistency.
We are Recommending you
- Laravel 10 Yajra Datatables Tutorial Example
- Laravel Profile Image Upload Tutorial with Example
- Laravel Store JSON Format Data in Database Example
- Laravel 9 Livewire Pagination Example Tutorial
- Laravel Pagination Pretty URL Example
- Laravel Install Tailwind CSS Example
- How to integrate TinyMCE Editor in Laravel?
- Laravel Custom Forgot & Reset Password Example
- Laravel Custom Login and Registration Example
- Laravel Next Previous Link Button Pagination
- How to Add Query String Automatically on Laravel Pagination Links?
- Laravel Custom Pagination View Example
- How to Add Pagination with Union in Laravel?