Красноречивые отношения Laravel — несколькоwhereHas иwhereIn для разных параметров фильтраPhp

Кемеровские программисты php общаются здесь
Anonymous
Красноречивые отношения Laravel — несколькоwhereHas иwhereIn для разных параметров фильтра

Сообщение Anonymous »

У меня есть несколько связей «многие-ко-многим», и я хочу отфильтровать их.
Модели:
  • Состояние >
  • Район
Прикрепил скриншот:
(https://i .sstatic.net/TJPwp.png)
Штаты — Алабама и Аризона, округа — Аутага, Болдуин и Апач.
Когда я проверяю Алабаму и Аризону запрос работает, и я получаю запрошенные элементы.
Теперь мне нужны только элементы из Аризоны и Аутаги, но запрос возвращает только элементы из Аутаги.
$query->when($states, function ($query) use ($districts, $states) {
$query->whereHas('states', function($query) use($states) {
$query->whereIn('name', $states);
});
});
$query->when($districts, function ($query) use ($districts, $states) {
$query->where(function ($subQuery) use ($states, $districts) {
$subQuery->whereHas('states', function($query) use($states) {
$query->whereIn('name', $states);
});
$subQuery->whereHas('districts', function($query) use($districts) {
$query->whereIn('name', $districts);
});
});
});


Подробнее здесь: https://stackoverflow.com/questions/757 ... erent-filt

Вернуться в «Php»