У меня проблемы с написанием запроса laravel eloquent ORM
.
мой запрос
SELECT book_name,dt_of_pub,pub_lang,no_page,book_price
FROM book_mast
WHERE book_price NOT IN (100,200);
Теперь я хочу преобразовать этот запрос в красноречивый.
Query Builder:
DB::table(..)->select(..)->whereNotIn('book_price', [100,200])->get();
Красноречивый:
SomeModel::select(..)->whereNotIn('book_price', [100,200])->get();
select
можно заменить на массив вget
.Вы также можете использовать WhereNotIn следующим образом:
Это вернет коллекцию записей с конкретными полями
источник
У меня были проблемы с выполнением подзапроса, пока я не добавил метод
->toArray()
к результату, надеюсь, он поможет больше, чем один, поскольку я хорошо провел время в поисках решения.пример
источник
Динамический способ реализации whereNotIn:
источник
User::orderBy('name', 'DESC')->where('status', '!=',0)->get()
Метод whereNotIn проверяет, что значение данного столбца не содержится в данном массиве:
источник
Вы можете использовать
WhereNotIn
следующим образом:источник
Вы можете использовать этот пример для динамического вызова Where NOT IN
источник
Вы можете сделать следующее.
источник
Это просто означает, что у вас есть массив значений и вы хотите запись, кроме этих значений / записей.
Вы можете просто передать массив в функцию laravel whereNotIn ().
С помощью построителя запросов
С красноречивым.
источник
Это мой рабочий вариант для Laravel 7
источник