Where Clause НЕ возвращает правильные данные в Laravel - PullRequest
1 голос
/ 30 июня 2019

Допустим, у меня есть Eloquent Query в

$drivers = Driver::whereRaw('driver_number not in (select driver_number from buses) OR driver_number = ?', [$bus->driver_number])
                    ->where('station_id', 3)
                    ->get();

Итак, я хочу получить все драйверы, которые назначены для шины со станцией 3, но возвращаются все драйверы, Я просто хочу драйверы для станции 3, но, похоже, это не работает.

Вот таблица драйверов

enter image description here

1 Ответ

0 голосов
/ 30 июня 2019

Получить все номера водителя из автобуса

$driverNumbers = Bus::pluck('driver_number');

При этом будут извлечены все драйверы в соответствии с указанным выше условием.

$drivers = Driver::where('station_id', 3)
                 ->whereNotIn('driver_number', $driverNumbers)
                 ->where('driver_number', '<>', $bus->driver_number)
                 ->get();
...