Задать вопрос
@kirill-93

Laravel правильный whereHas?

Привет, есть база групп entities, у них есть теги, нужно сделать выборку всех entities у которых тегов или нет вообще или есть теги, кроме исключенных
$entities = Entity::whereHas('tags', function($query) use ($excluded) {
    $query->whereNotIn('tags.id', $excluded);
});

Вот тут получается, что берем entity, у которых есть теги помимо исключенных, но если тегов у entity совсем нет, то их тоже нужно выбрать. Можно ли это сделать без join?
  • Вопрос задан
  • 368 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Loftschool
    Комплексное обучение PHP
    6 недель
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Skillbox
    Профессия PHP-разработчик с нуля до PRO
    7 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
orWhereIsNull может быть добавить
Ответ написан
Комментировать
wielski
@wielski
✔ Совет: Вам помогли? Отметьте ответы решением.
$entities = Entity::where(function($q) use ($excluded){
    $q->whereHas('tags', function($query) use ($excluded) {
        $query->whereNotIn('tags.id', $excluded);
    })->orWhereDoesntHave('tags');
});
Ответ написан
Ваш ответ на вопрос

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

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