Blade Fragments дозволяють часткове оновлення сторінки, повертаючи конкретні секції шаблонів. Це ідеальне рішення для використання з htmx або Turbo фреймворками.
Основне визначення і використання фрагмента:
// У вашому Blade шаблоні
@fragment('notification-list')
<div class="notifications">
@foreach($notifications as $notification)
<div class="alert">
{{ $notification->message }}
</div>
@endforeach
</div>
@endfragment
// У вашому контролері
return view('dashboard')
->fragment('notification-list');
Приклад роботи системи сповіщень:
<?php
namespace App\Http\Controllers;
use App\Models\Notification;
use Illuminate\Http\Request;
class NotificationController extends Controller
{
public function store(Request $request)
{
$notification = Notification::create([
'user_id' => auth()->id(),
'message' => $request->message,
'type' => $request->type
]);
if ($request->hasHeader('HX-Request')) {
return view('notifications.index', [
'notifications' => auth()->user()->notifications()->latest()->get()
])->fragmentIf(
$request->hasHeader('HX-Request'),
'notification-list'
);
}
return back();
}
public function clear(Request $request)
{
auth()->user()->notifications()->delete();
return view('notifications.index', [
'notifications' => collect()
])->fragment('notification-list');
}
}
Структура шаблону:
<!-- notifications/index.blade.php -->
<div class="container">
@fragment('notification-list')
<div class="notification-wrapper">
@forelse($notifications as $notification)
<div class="alert alert-{{ $notification->type }}">
{{ $notification->message }}
<span class="timestamp">
{{ $notification->created_at->diffForHumans() }}
</span>
</div>
@empty
<p>Немає сповіщень</p>
@endforelse
</div>
@endfragment
</div>
Blade Fragments демонструють прихильність Laravel до сучасної інтерактивної веб-розробки, пропонуючи серверне рішення, яке бездоганно інтегрується з методами прогресивного покращення, зберігаючи при цьому простоту, яку очікують розробники
Досліджуйте новий пакет Data Model для PHP, який спрощує процес гідратації об'єктів без зайвих складнощів! Дізнайтеся, як впровадження типобезпечних об'єктів може революціонізувати ваш підхід до розробки, читаючи нашу статтю
Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом
Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!