Что такое eager loading? Как решить N+1?

Ответ
// N+1 проблема
$posts = Post::all();
foreach ($posts as $post) {
    echo $post->author->name; // запрос на каждый пост!
}

// Eager loading - решение
$posts = Post::with('author')->get();            // 2 запроса
$posts = Post::with(['author', 'tags'])->get();   // 3 запроса
$posts = Post::with('author.profile')->get();     // вложенные

// Lazy eager loading (после загрузки)
$posts->load('comments');

// Подсчет без загрузки
$posts = Post::withCount('comments')->get();
echo $post->comments_count;

// Предотвращение N+1 (Laravel 11+)
Model::preventLazyLoading(); // Exception при lazy load
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.