Laravel 7, 6 aplikasi full text search. Di sini Anda akan belajar bagaimana mengimplementasikan full text search dalam aplikasi laravel dalam package full text search.
Tutorial ini akan memandu Anda langkah demi langkah tentang cara mengimplementasikan full text search di aplikasi laravel menggunakan full text search package dan model bootstrap. Serta belajar bagaimana mengatasi kesalahan ini "Laravel: Kesalahan sintaks atau pelanggaran akses: Kesalahan 1055" . Terjadi implementasi pencarian teks lengkap.
Tutorial ini menggunakan metode form get untuk membuat full text search dengan mysql DB di aplikasi laravel. Dan gunakan php artisan tinker untuk menghasilkan data dummy ke dalam tabel database.
Perhatikan bahwa, full - Text Cari di MySQL Server memungkinkan pengguna menjalankan fulkl- text query terhadap data berbasis karakter di MySQL tabel. Anda harus membuat full - text indeks di atas meja sebelum Anda menjalankan full - text query di table . full- text indeks dapat mencakup satu atau lebih kolom berbasis karakter dalam tabel.
Cara yang jauh lebih baik dan lebih cepat untuk mencari ke dalam tabel MySql DB adalah dengan menggunakan pencarian FULLTEXT daripada menggunakan Laravel 'LIKE' yang fasih dengan query.
Tutorial ini juga bekerja dengan versi berbeda laravel seperti laravel 5, 5.5, 6, 7.x dll.
Tutorial full text search Laravel Dari Awal
Mari kita mulai implementasi full text search laravel di laravel 7, 6 versi:
- Langkah 1: Instal Aplikasi Baru Laravel
- Langkah 2: Konfigurasi file .evn
- Langkah 3: Jalankan Migrasi
- Langkah 4: Instal full text search package
- Langkah 5: Tambahkan data dummy di DB
- Langkah 6: Tambahkan Route,
- Langkah 7: Buat Controller
- Langkah 8: Buat view blade
- Langkah 9: Mulai Server Development
Step 1: Install Laravel Fresh Setup
Pertama-tama, buka terminal Anda dan jalankan perintah berikut untuk menginstal atau mengunduh aplikasi baru laravel untuk aplikasi full text search:
composer create-project --prefer-dist laravel/laravel blog
Step 2: Configuration .env file
Pada langkah ini, buka direktori root proyek. Dan buka file .env. Kemudian tambahkan detail database seperti gambar berikut:
Step 3: Run Migration
Pada langkah ini, jalankan perintah migrasi untuk memigrasi tabel ke database:
php artisan migrate
Step 4: Install Full Text Package
Sekarang, buka terminal Anda lagi, dan jalankan perintah berikut untuk menginstal full text serach package di aplikasi laravel:
composer require nicolaslopezj/searchable
Step 5: Add Fake Records in DB
Pada langkah ini, jalankan perintah berikut di terminal untuk menambahkan data dummy ke dalam tabel database:
php artisan tinker
Setelah menjalankan php artisan tinker. Jalankan perintah berikut. Ini akan menambahkan 150 data dummy di database Anda:
>>> factory(App\User::class, 150)->create();
Step 6: Create Routes
Pada langkah ini, navigasikan ke direktori route aplikasi laravel dan buka file web.php . Kemudian tambahkan route berikut ke file web.php :
Route::get('full-text-search', 'FullTextSearchController@index');
Step 7: Create Controller
Sekarang, buka terminal Anda lagi, dan jalankan perintah berikut untuk membuat controller:
php artisan make:controller FullTextSearchController
Kemudian buka direktori app/Http/Controllers dan buka file FullTextSearchController.php . Dan tambahkan kode berikut ke file FullTextSearchController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\User;
class FullTextSearchController extends Controller
{
public function index(Request $request)
{
if($request->has('term')){
$data['lists'] = User::search($request->get('term'))->get();
}else{
$data['lists'] = User::get();
}
return view('full-text-search', $data);
}
}
Step 8: Create Blade View
Pada langkah ini, navigasikan ke direktori resources/views/dan buat satu file tampilan blade bernama file users.blade.php . Kemudian tambahkan kode berikut ke file users.blade.php Anda :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Laravel 7, 6, 5 Full Text Search Tutorial</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-5">
<div class="card">
<div class="card-header">
<h1>Laravel 7/6 Full Text Search Tutorial From Scratch</h1>
</div>
<div class="card-body">
<form method="GET" action="{{ url('full-text-search') }}">
<div class="row">
<div class="col-md-6">
<input type="text" name="term" class="form-control" placeholder="Search">
</div>
<div class="col-md-6">
<button class="btn btn-primary">Search</button>
</div>
</div>
</form>
<br/>
<table class="table table-bordered">
<tr>
<th>Id</th>
<th>Name</th>
<th>Email</th>
</tr>
@if($lists)
@foreach($lists as $list)
<tr>
<td>{{ $list->id }}</td>
<td>{{ $list->name }}</td>
<td>{{ $list->email }}</td>
</tr>
@endforeach
@else
<tr>
<td colspan="3" class="text-danger">Result not found.</td>
</tr>
@endif
</table>
</div>
</div>
</div>
</body>
</html>
Step 9: Start Development Server
Pada langkah ini, buka terminal Anda dan jalankan perintah php artisan serve untuk memulai aplikasi full text serach laravel Anda secara lokal:
php artisan serve
If you want to run the project diffrent port so use this below command
php artisan serve --port=8080
Sekarang Anda siap untuk menjalankan aplikasi full text serach laravel ini. Jadi buka browser Anda dan tekan url berikut di atasnya:
http://localhost:8000/full-text-search
Kesimpulan
Tutorial full text serach Laravel, di sini Anda telah belajar dari awal bagaimana menerapkan full text serach di aplikasi laravel. Perhatikan bahwa, jika Anda menemukan error berikut ini di aplikasi full text serach laravel:
SQLSTATE[42000]: Syntax error or access violation: 1055 ‘fulltextsearch.users.name’ isn’t in GROUP BY (SQL: select * from (select users.*, max((case when LOWER(users.name) LIKE tr then 150 else 0 end) + (case when LOWER(users.name) LIKE tr% then 50 else 0 end) + (case when LOWER(users.name) LIKE %tr% then 10 else 0 end) + (case when LOWER(users.email) LIKE tr then 75 else 0 end) + (case when LOWER(users.email) LIKE tr% then 25 else 0 end) + (case when LOWER(users.email) LIKE %tr% then 5 else 0 end)) as relevance from users group by users.id having relevance >= 3.75 order by relevance desc) as users)
Solusi Kesalahan Di Atas: Arahkan ke direktori config dan buka file database.php . Kemudian ubah strict => false untuk menonaktifkan mode strict MySQL.
full text serach with laravel mysql laravel 6 laravel laravel 7