Pada tutorial kali ini, kita akan membahas contoh pencarian full text laravel 9 scout. Anda dapat melihat contoh pencarian engine laravel 9. Anda akan mempelajari contoh laravel 9 scout elasticsearch. Di sini Anda akan belajar cara menambahkan pencarian teks lengkap di laravel 9 scout. Mari kita mulai dengan contoh mesin database scout laravel 9.
Laravel 9 menyediakan Paket Pramuka untuk pencarian teks lengkap dari proyek Anda. Jika Anda perlu menambahkan fungsi pencarian teks lengkap di aplikasi laravel 9 Anda, maka Anda harus memilih package scout untuk dilakukan.
Dalam contoh ini, kita akan menginstal package scout composer dan menggunakan driver database untuk pencarian teks lengkap. kemudian kita akan menggunakan pramuka dengan model Pengguna dan menambahkan kolom nama, email, dan id untuk pencarian teks lengkap. mari kita lihat langkah di bawah ini untuk membuat fungsi pencarian teks lengkap.
Langkah 1: Install Laravel 9
Ini opsional; namun, jika Anda belum membuat aplikasi laravel, Anda dapat melanjutkan dan menjalankan perintah di bawah ini:
composer create-project laravel/laravel example-app
Langkah 2: Install Scout
Pada langkah ini kita harus menginstal package scout dan kami akan mempublikasikannya:
composer require laravel/scout
Selanjutnya, kita harus mempublikasikan file konfigurasi kita. jadi Anda perlu menjalankan perintah di bawah ini:
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
Sekarang kita perlu mengatur database konfigurasi sebagai driver di file env Anda:
.env
SCOUT_DRIVER=database
Langkah 3: Perbarui Model User
Di sini, kita sudah membuat tabel pengguna, jadi kita perlu menggunakan metode "Searchable" dan membuat toSearchableArray(). jadi mari kita perbarui kode berikut:
app/Model/User.php
<?php
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 array
*/
protected $fillable = [
'name',
'email',
'password'
];
/**
* The attributes that should be hidden for serialization.
*
* @var array
*/
protected $hidden = [
'password',
'remember_token',
];
/**
* 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
];
}
}
Selanjutnya, kita akan membuat beberapa dummy record pada tabel users dan mengimpornya.
jadi mari kita jalankan perintah berikut:
Create Dummy Records:
php artisan tinker
User::factory()->count(20)->create()
Import Records:
php artisan scout:import "App\Models\User"
Langkah 4: Buat Controller UserController
Pada titik ini, sekarang kita harus membuat pengontrol baru sebagai UserController. Di pengontrol ini, kami akan menambahkan metode indeks, yang akan mengembalikan user dengan filter.
Mari perbarui kode berikut ke file controller Anda:
app/Http/Controllers/UserController.php
<?php
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)
{
if($request->filled('search')){
$users = User::search($request->search)->get();
}else{
$users = User::get();
}
return view('users', compact('users'));
}
}
Langkah 5: Tambahkan Route
Pada langkah ini kita perlu membuat route untuk daftar user. jadi buka file "routes/web.php" Anda dan tambahkan route berikut.
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']);
Langkah 6: Buat Views
Pada langkah terakhir, mari kita buat users.blade.php(resources/views/users.blade.php) untuk layout dan kita akan menulis kode desain di sini dan memasukkan kode berikut:
resources/views/users.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Laravel 9 Scout Full Text Search Tutorial - Medikre.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 9 Scout Full Text Search Tutorial - Medikre.com</h1>
<form method="GET">
<div class="input-group mb-3">
<input
type="text"
name="search"
value="{{ request()->get('search') }}"
class="form-control"
placeholder="Search..."
aria-label="Search"
aria-describedby="button-addon2">
<button class="btn btn-success" type="submit" id="button-addon2">Search</button>
</div>
</form>
<table class="table table-bordered data-table">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
</tr>
</thead>
<tbody>
@foreach($users as $user)
<tr>
<td>{{ $user->id }}</td>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</body>
</html>
Jalankan Aplikasi Laravel:
Semua langkah yang diperlukan telah dilakukan, sekarang Anda harus mengetikkan perintah yang diberikan di bawah ini dan tekan enter untuk menjalankan aplikasi Laravel:
php artisan serve
Sekarang, Buka browser web Anda, ketik URL yang diberikan:
http://localhost:8000/users
Mungkin bisa membantu anda.....
laravel laravel 9 tutorial full text search laravel example