Laravel надає потужні можливості для повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до даних, порівняно з базовими умовами LIKE.
Методи whereFullText інтегруються безпосередньо з можливостями повнотекстового пошуку вашої бази даних. Ось приклад базової реалізації:
use Illuminate\Support\Facades\DB;
$users = DB::table('users')
->whereFullText('bio', 'web developer')
->get();
На основі цього ви можете створити більш розширену функціональність пошуку для блогу чи системи керування контентом. Наступний приклад демонструє пошук по кількох стовпцях із можливістю фільтрації за категорією:
// ArticleController.php
public function search(Request $request)
{
return Article::query()
->whereFullText(['title', 'content'], $request->search)
->when($request->category, function ($query, $category) {
$query->where('category', $category);
})
->orderBy('published_at', 'desc')
->paginate(15);
}
// Міграція
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->string('category');
$table->timestamp('published_at');
$table->fullText(['title', 'content']);
});
Laravel автоматично генерує відповідний SQL-синтаксис для вашої системи бази даних. Для MariaDB та MySQL за замовчуванням використовуються запити з використанням операторів MATCH AGAINST у природному мовному режимі.
Цей підхід спрощує реалізацію складного пошуку, зберігаючи ефективність запитів для застосунків середнього розміру. Якщо вашій системі потрібні розширені пошукові можливості або обробка великих обсягів даних, рекомендується розглянути можливість використання спеціалізованих служб пошуку, таких як Elasticsearch або Meilisearch
Нова версія Livewire 4, представленої Келебом Порзіо на Laracon US 2025, обіцяє значні покращення у швидкості та організації компонентів. Які з інноваційних функцій підкорять ваше серце? Читайте далі, щоб дізнатися більше про те, як Livewire 4 полегшить вашу роботу
Вам цікаво дізнатися, як спростити інтеграцію RabbitMQ у вашому Laravel-додатку? У нашій статті ми розглянемо пакет Simple RabbitMQ, який дозволяє легко налаштувати багатозʼєднання, публікувати повідомлення та обробляти черги за допомогою простого синтаксису. Читайте далі, щоб дізнатися більше!
Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю