@Artem0071
Безработный mr. Junior

Как решить проблему N+1?

Есть посты
И каждый пост можно лайкнуть, то есть получается следующие таблицы:
1) users
2) posts
3) likes (id, user_id, likeable_id, likeable_type)

Когда нужна коллекция постов, как стоит подгружать лайки к постам чтобы понять лайкнул ли данный пользователь пост или нет?
  • Вопрос задан
  • 174 просмотра
Решения вопроса 2
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
1 запрос коллекция постов
1 запрос лайки юзера по этим постам
= 2 запроса
Ответ написан
Комментировать
@Kostik_1993
Web Developer
Post::with('likes', 'users')->get();

В модели пост у вас все равно должен быть метод или атрибут isLiked
например так

public function getIsLikedAttribute()
{
    return $this->likes ? true:false;
}

Сначала вы делаете запрос с подгрузкой связей, и тогда после у вас не будет обращений в базу
Читайте доки там про связи все есть
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы