DEV Community

Hòa Nguyễn Coder
Hòa Nguyễn Coder

Posted on

Pagination for search results laravel 5.8

Information search in website using Laravel 5.8, Today, I'm share example simple pagination for search results in Laravel 5.8
Okay, youn can install laravel 5.8 version

composer create-project --prefer-dist laravel/laravel blog "5.8.*"
Enter fullscreen mode Exit fullscreen mode

After then, you need create controller , you run command the following

php artisan make:controller SearchController --resource
Enter fullscreen mode Exit fullscreen mode

SearchController.php file in directory App/Http/Controller, you open file and pass the following code

public function index(Request $request)
    {
        $search =  $request->input('q');
        if($search!=""){
            $users = User::where(function ($query) use ($search){
                $query->where('name', 'like', '%'.$search.'%')
                    ->orWhere('email', 'like', '%'.$search.'%');
            })
            ->paginate(2);
            $users->appends(['q' => $search]);
        }
        else{
            $users = User::paginate(2);
        }
        return View('pages.search')->with('data',$users);
        //
    }
Enter fullscreen mode Exit fullscreen mode

If user don't search, you get data all user in user table
if user search, you need using $search = $request->input('q'); get search value, after then append keyword $users->appends(['q' => $search]);

Ok, you to resources/views/pages directory create search.blade.php file, aften then you pass the following code

@extends('layouts.app')
@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-10">
            <form action="">
                <h2>Search content in database using Laravel</h2>
                <div class="form-group">
                    <input type="text" name="q" placeholder="Search...!" class="form-control"/>
                    <input type="submit" class="btn btn-primary" value="Search"/>
                </div>
            </form>
        </div>
        <div class="col-md-10">
            <table class="table">
                @foreach($data as $user)
                <tr>
                    <td>{{$user->ID}}</td>
                    <td>{{$user->name}}</td>
                    <td>{{$user->email}}</td>
                    <td>{{$user->created_at}}</td>
                    <td>{{$user->updated_at}}</td>

                </tr>
                @endforeach
            </table>
            {{ $data->links() }}
        </div>
    </div>
</div>
@endsection
Enter fullscreen mode Exit fullscreen mode

Configuration Route in laravel, open web.php in routes/web.php directory

Route::get("/search",'SearchController@index');
Enter fullscreen mode Exit fullscreen mode

Test Paginated data with Search functionality in Laravel
php artisan serve
http://localhost:8000/search
pagination for search results in laravel 5.8 - hoanguyenit.com
pagination for search results in laravel 5.8 - hoanguyenit.com

Post:Pagination for search results in Laravel 5.8
or more posts

Top comments (0)