PHP
Optimizing Eloquent Queries with Conditional Eager Loading
Efficiently load related models in Laravel Eloquent by adding conditions to eager loaded relationships, preventing N+1 queries while filtering results.
Book::with([
'author' => function ($query) {
$query->where('country', 'USA');
},
'comments' => function ($query) {
$query->where('approved', true);
}
])->get();
How it works: This snippet demonstrates how to eager load related models (author, comments) while applying specific conditions to the loaded relationships. This prevents the N+1 query problem, improving performance, and ensures only relevant related data is retrieved, such as authors from 'USA' or only approved comments. This technique is crucial for optimizing queries involving relationships.