2016-05-12 2 views
1

Я хочу разбивать страницы на все мои статьи. 15 из них на страницу. Вот вызов постраничной: Article::orderBy('created_at', 'desc')->paginate(15)Laravel Красноречивый дублированный запрос

пагинацию работает нормально, но проблема заключается в том, что на каждой статье Laravel делает запрос на моем столе пользователей. 15 статей на страницу, 15 дубликатов запросов к таблице моих пользователей. Вот изображение из DebugBar: image source

Как оптимизировать пагинацию и удалить все эти дубликаты запросов?

+0

Какие отношения вы используете между пользователем и статьи моделей? –

+0

В пользовательской модели у меня есть 'public function articles() { return $ this-> hasMany (Article :: class); } 'и в статьях у меня есть' public function user() { return $ this-> принадлежитTo (User :: class); } '. – ealocin

ответ

0

Вы используете один-ко-многим между этими моделями, так, чтобы решить эту проблему (которая называется N+1 query problem), используйте eager loading

Article::orderBy('created_at', 'desc')->with('user')->paginate(15)