Problema N+1 Queries este una dintre cele mai frecvente cauze ale încetinirii aplicațiilor web: la afișarea unei liste de 50 de articole, accesarea autorului în Blade execută încă 50 de interogări SQL separate (51 în total!).
Prin utilizarea Eager Loading cu Post::with('author')->get(), Eloquent reduce totul la exact 2 interogări SQL (SELECT * FROM posts urmat de SELECT * FROM authors WHERE id IN (...)), indiferent de numărul de articole.
Exemplu: Eager Loading avansat cu filtre și limitări
use App\Models\Post;
// Eager loading pentru autor și doar comentariile aprobate:
$posts = Post::with([
'author:id,name,email',
'comments' => function ($query) {
$query->where('is_approved', true)->orderBy('created_at', 'desc');
}
])->paginate(20);
// Lazy eager loading pe o instanță deja existentă:
// $post->load(['tags', 'category']);
Întrebări & Exemple de Cod:
Optimizarea Eager Loading cu with() și load()Ai o nelămurire despre utilizarea comenzii
Optimizarea Eager Loading cu with() și load()sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.