Laravel 9 Scout Search with Database Driver Example

Mar 04, 2022 . Admin

Hi friends,

In this tutorial,i will tell Laravel 9 Scout Search with Database Driver Example. i will show the example of laravel 9 scout full text search. you can see laravel 9 scout search example. it can this example full explain scout full text search in laravel 9. Here you will learn how to add full text search in laravel 9 scout. you will learn laravel 9 scout elasticsearch example.

Let us know more about Laravel Scout, and it’s a powerful driver-based eloquent package that helps you develop super-fast fast-text search combining with your laravel models.

In this Laravel 9 Scout example, we will tell you how to process every ingredient to form the quick, responsive, and agile full-text search in laravel 9.

Here the following steps example laravel 9 full text search Using scout.

Step 1: Download Laravel

Let us begin the tutorial by installing a new laravel application. if you have already created the project, then skip following step.

composer create-project laravel/laravel example-app
Step 2: Install Scout

In this step we have to install scout package and we will publish them:

composer require laravel/scout

Next, we have to publish our configuration file. so you need to run bellow command:

php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"

Now we need to set configuration database as driver in your env file:

Step 3: Update User Model

Here, we already have users table created, so we need use "Searchable" and create toSearchableArray() method. so let's update following code:


namespace App\Models;

use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
use Laravel\Scout\Searchable;

class User extends Authenticatable
    use HasApiTokens, HasFactory, Notifiable, Searchable;

     * The attributes that are mass assignable.
     * @var string[]
    protected $fillable = [

     * The attributes that should be hidden for serialization.
     * @var array
    protected $hidden = [

     * The attributes that should be cast.
     * @var array
    protected $casts = [
        'email_verified_at' => 'datetime',

     * Get the indexable data array for the model.
     * @return array
    public function toSearchableArray()
        return [
            'name' => $this->name,
            'email' => $this->email

Next, we will create some dummy records on users table and import it.

so let's run following commands:

Create Dummy Records:

php artisan tinker
Import Records:
php artisan scout:import "App\Models\User"
Step 4: Create UserController Controller

In this point, now we should create a new controller as UserController. In this controller, we will add index method, that will return users with filter.

Let's update following code to your controller file:


namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\User;

class UserController extends Controller
     * Display a listing of the resource.
     * @return \Illuminate\Http\Response
    public function index(Request $request)
            $users = User::search($request->search)->get();
            $users = User::get()->take('5');
        return view('users', compact('users'));
Step 5: Creat Route

In this is step we need to create route for listing users. so open your "routes/web.php" file and add following route.

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 6: Create View

In Last step, let's create users.blade.php(resources/views/users.blade.php) for layout and we will write design code here and put following code:

<!DOCTYPE html>
    <title>Laravel 9 Scout Search with Database Driver Example -</title>
    <link href="" rel="stylesheet">
<div class="container">

    <h3 class="mt-5 mb-5 text-center">Laravel 9 Scout Search with Database Driver Example -</h3>
    <form method="GET" class="mb-5">
        <div class="input-group mb-3">
                value="{{ request()->get('search') }}" 
            <button class="btn btn-primary" type="submit" id="button-addon2">Search</button>
    <table class="table table-bordered data-table">
            @foreach($users as $user)
                    <td>{{ $user->id }}</td>
                    <td>{{ $user->name }}</td>
                    <td>{{ $user->email }}</td>
Run Laravel App:

All steps have been done, now you have to type the given command and hit enter to run the laravel app:

php artisan serve

Now, you have to open web browser, type the given URL and view the app output:


I hope it can help you...

#Laravel 9