Laravel 7 Livewire Search With Pagination Example Tutorial
In this article, we would like to introduce you to how to create a search with pagination using Livewire in laravel 7(Laravel 7 Livewire Search With Pagination Example Tutorial).
The Livewire is an open-sourced package and “full-stack framework for Laravel that makes building dynamic interface simple, without leaving the comfort of Laravel.” You might be used to using frameworks such as Vue.
Livewire makes an AJAX request to the server with the updated data and the page automatically update without a page reload
If you want to create a filter data with pagination then you can easily create the search with pagination using the livewire package. we also provide the steps for the filter with pagination, so you can follow the below steps.
Overview
Step 1: Install Laravel 7
Step 2: Setting Database Configuration
Step 3: Run Migration Command
Step 4: Create a Dummy Record
Step 5: Install Livewire
Step 6: Create Component
Step 7: Create Route
Step 8: Create Blade Files
Step 9: Run Our Laravel Application
Laravel Livewire Search With Pagination
Step 1: Install Laravel 7
We are going to install laravel 7, so first open the command prompt or terminal and go to go to xampp htdocs folder directory using the command prompt. after then run the below command.
1 | composer create-project --prefer-dist laravel/laravel laravel7_livewire_search_pagination |
Step 2: Setting Database Configuration
After the complete installation of laravel. we have to database configuration. now we will open the .env file and change the database name, username, password in the .env file. See below changes in a .env file.
1 2 3 4 5 6 | DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=Enter_Your_Database_Name(laravel7_livewire_search_pagination) DB_USERNAME=Enter_Your_Database_Username(root) DB_PASSWORD=Enter_Your_Database_Password(root) |
Step 3: Run Migration Command
Run the below command for the migration of the user’s table.
1 | php artisan migrate |
Step 4: Create a Dummy Record
Now, We will add a dummy records in the ‘users’ table using the laravel tinker command.
1 2 | php artisan tinker factory(App\User::class, 200)->create(); |
Step 5: Install Livewire
Now, We will install a livewire package using the below command.
1 | composer require livewire/livewire |
Step 6: Create Component
Here below command help to create the component.
1 | php artisan make:livewire Search |
app/Http/Livewire/Search.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php namespace App\Http\Livewire; use Livewire\Component; use Livewire\WithPagination; use App\User; class Search extends Component { use WithPagination; public $searchText; public function render() { $searchText = '%'.$this->searchText.'%'; return view('livewire.search',[ 'users' => User::where('name','like', $searchText)->paginate(10) ]); } } ?> |
Step 7: Create Route
Add the following route code in the “routes/web.php” file.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php /* |-------------------------------------------------------------------------- | 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('/search', function () { return view('searchform'); }); |
Step 8: Create Blade Files
So finally, first we will open the searchform.blade.php and search.blade.php files and after then paste the following code.
resources/views/searchform.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <!DOCTYPE html> <html> <head> <title>Laravel 7 Livewire Search With Pagination Example Tutorial - XpertPhp</title> @livewireStyles <link rel="stylesheet" href="{{ asset('css/app.css') }}"> </head> <body> <div class="container mt-4"> <div class="row"> <div class="col-md-8 offset-2"> <div class="card"> <div class="card-header bg-success text-white "> <strong>Laravel 7 Livewire Search With Pagination</strong> </div> <div class="card-body"> @livewire('search') </div> </div> </div> </div> </div> </body> <script src="{{ asset('js/app.js') }}"></script> @livewireScripts </html> |
resources/views/livewire/search.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <div class="container"> <div class="row"> <div class="col-md-12"> <input type="text" class="form-control" placeholder="Search" wire:model="searchText" /> <table class="table table-bordered" style="margin: 10px 0 10px 0;"> <tr> <th>Name</th> <th>Email</th> </tr> @foreach($users as $user) <tr> <td> {{ $user->name }} </td> <td> {{ $user->email }} </td> </tr> @endforeach </table> {{ $users->links() }} </div> </div> </div> |
Step 9: Run Our Laravel Application
We can start the server and run this example using the below command.
1 | php artisan serve |
Now we will run our example using the below Url in the browser.
1 | http://127.0.0.1:8000/search |
Read Also
Laravel 6 CRUD (Create Read Update Delete) Tutorial For Beginners
Laravel 7 CRUD Operation With Ajax Example
Laravel 6 CRUD Operation With Ajax Example
Laravel 6 Pagination Example Tutorial
Laravel 7 Pagination Example Tutorial