@kirill-93

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

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

Вот тут получается, что берем entity, у которых есть теги помимо исключенных, но если тегов у entity совсем нет, то их тоже нужно выбрать. Можно ли это сделать без join?
  • Вопрос задан
  • 355 просмотров
Пригласить эксперта
Ответы на вопрос 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');
});
Ответ написан
Ваш ответ на вопрос

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

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