$this->model
->join('user_credentials', 'upload_conversions.user_id', '=', 'user_credentials.user_id')
->select(
'upload_conversions.id',
'upload_conversions.status',
'upload_time',
'user_credentials.user_id',
DB::raw('CONCAT(user_credentials.first_name, " ", user_credentials.last_name) as user_name')
)
->where('upload_conversions.status', '!=', 'x')
->groupBy('upload_time')
->get();
В приведенном выше запросе я не могу использовать поле "status" в предложении where с красноречивым Laravel.
Обратите внимание на "! =", Оно не должно независимо от того, что содержит строка. Если я изменю где использовать любое другое поле, запрос будет работать так, как должен.
Кажется, я не могу найти никаких ответов, и я не могу поверить, что я первый, кто использовал имя поля "status" в предложении where.
Так что же я делаю не так?
ОБНОВЛЕНИЕ: Проблема в том, что я не получаю ошибки, но и никаких результатов. Где это должно иметь много результатов. Изменение поля в where дает результаты ..
ОБНОВЛЕНИЕ: Это из-за значений NULL. NULL в SQL также не должен быть строкой, так почему это не работает? Это Laravel ошибка?
ОТВЕТ:
->where('upload_conversions.status', '!=', 'test')
->orWhereNull('upload_conversions.status')
Действительно ужасно, но это работает.