PHP
Efficiently Load Relationships with Eloquent Eager Loading
Prevent N+1 query problems in Laravel Eloquent by using eager loading (with method) to fetch related models in a single query, significantly improving performance.
// Bad: N+1 problem example
$posts = App\Models\Post::all();
foreach ($posts as $post) {
echo $post->user->name; // Each access fires a new query
}
// Good: Eager loading with 'with'
$posts = App\Models\Post::with('user')->get();
foreach ($posts as $post) {
echo $post->user->name; // User is already loaded
}
How it works: This snippet demonstrates how to combat the common N+1 query problem in Laravel Eloquent. By using the `with()` method, you instruct Eloquent to load specified relationships (like 'user' for posts) upfront for all retrieved models using a single query, rather than executing a separate query for each related model access within a loop. This significantly reduces database load and improves application performance.