Les fragments de lame Laravel offrent une approche rationalisée aux mises à jour de page partielle, parfaitement adaptées à des cadres comme HTMX ou Turbo. Cette solution côté serveur améliore l'interactivité sans sacrifier la facilité d'utilisation de Laravel.
Utilisation des fragments de lame
Voici un exemple de base de définir et d'utiliser un fragment:
<!-- Blade template --> @fragment('notification-list') <div class="notifications"> @foreach($notifications as $notification) <div class="alert"> {{ $notification->message }} </div> @endforeach </div> @endfragment <!-- Controller --> return view('dashboard')->fragment('notification-list');
Application du monde réel: Système de notification en direct
illustrons avec un système de notification en direct:
<?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'); } }
Structure de modèle correspondante:
<div class="container"> @fragment('notification-list') <div class="notification-wrapper"> @forelse($notifications as $notification) <div class="alert alert-{{ $notification->type }}"> {{ $notification->message }} {{ $notification->created_at->diffForHumans() }} </div> @empty <p>No notifications</p> @endforelse </div> @endfragment </div>
Cela montre comment les fragments de lame fournissent une méthode propre et efficace pour mettre à jour les parties d'une page, s'alignant parfaitement avec les meilleures pratiques de développement Web modernes. L'intégration avec les techniques d'amélioration progressive en fait un outil puissant dans l'écosystème de Laravel.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!