limits
id, item_id, max_works
Есть таблица works
id, item_id, status
Мне нужно получить все Items у которых есть лимит, и max_works = 0 или max_works > item.works имеющих статусы не ["verified", "rejected", "refused"]
Что в запросе я делаю не так?
$sql = $sql->whereHas('limits', function ($query) {
return $query->with('item.works')->where(function ($q) {
return $q->where('max_works', 0)->orWhere(function($q) {
return $q->where("max_works", ">", function ($q) {
return $q->where('item.works', function ($q) {
return $q->whereNotIn("status", ["verified", "rejected", "refused"])->count();
});
});
});
});
});
Буду благодарен. А то запутался немного(
я тоже запутался, слишком большой уровень вложенности, думаю на производительность влияет. Что мешает не колбеками сделать, проще разобраться.
А можете подсказать плз? Я просто JS разраб, а по ПХП вынуждено взял проект и вот стопорнулся на этом моменте
return $q->where('item.works', function ($q) { - здесь ошибка у тебя нет таблицы item и поля works d ytq
>что я делаю не так (используешь орм)
Вот тут не могу понять вот этот кусок. Как мне в данном случае получить значение max_works из таблицы из свзей: ->whereHas('works', function ($query) { $query->whereNotIn("status", ["verified", "rejected", "refused"]); }, '<', 'projectLimits.max_works'); , '<', 'projectLimits.max_works' projectLimits - я делаю в самом начале запроса ->with(["projectLimits"]);
Обсуждают сегодня