Почему не работает notIn в данной выборке в Laravel?

Tags::where('name', 'LIKE', '%' . $like . '%')
                ->whereNotIn('id', $deprecate)
                ->where(function ($q) use ($id) {
                    $q->whereHas('closure', function ($q) use ($id) {
                        $q->where('tags_closure.ancestor_id', '=', $id);
                    })->orWhere(function ($q) {
                        $q->where('is_sealed', 1);
                    });
                })
                ->with('closure')
                ->get();

->whereNotIn('id', $deprecate) не в какую не хочет отрабатывать , хотя $deprecate вполне себе валидный массив
В чем проблема?
  • Вопрос задан
  • 221 просмотр
Решения вопроса 1
@devalex89
А каков запрос на выходе?
может там и станет понятна проблема
давайте попробуем так
$q = Tags::where('name', 'LIKE', '%' . $like . '%')
                ->whereNotIn('id', $deprecate)
                ->where(function ($q) use ($id) {
                    $q->whereHas('closure', function ($q) use ($id) {
                        $q->where('tags_closure.ancestor_id', '=', $id);
                    })->orWhere(function ($q) {
                        $q->where('is_sealed', 1);
                    });
                })
                ->with('closure');
$sql = $q->toSql();

var_dump($sql);

так же напишите массив $deprecate какой
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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