← Back to all snippets
PHP

Optimize Eloquent Queries with Eager Loading (N+1 Problem)

Learn to prevent the N+1 query problem in Laravel Eloquent by using eager loading with `with()` to fetch related models efficiently and boost performance.

User::with('posts')->get();

// Or eager load specific columns from the related table
User::with('posts:id,title,user_id')->get();

// Nested eager loading for deeper relationships
Order::with('customer.address')->get();

// Conditional eager loading to filter related models
User::with(['posts' => function ($query) {
    $query->where('published', true);
}])->get();
How it works: Eager loading is a critical technique to solve the N+1 query problem, which occurs when fetching a collection of models and then looping through them to access a related model, triggering a separate query for each iteration. By using `with()`, Eloquent fetches all related models in a single, more efficient query. This snippet demonstrates basic, column-specific, nested, and conditional eager loading, allowing you to optimize database interactions significantly.

Need help integrating this into your project?

Our team of expert developers can help you build your custom application from scratch.

Hire DigitalCodeLabs