Итак, я могу использовать User::where('username', '!=', null)->get()
;
Однако я нахожусь в том случае, когда хочу цеплять запросы, используя условия if, начиная с первого, и в этом случае where('username', '!=', null)
не нужен. Приведу псевдопример:
Я запускаю отчет на основе пользователей, где есть несколько полей. Я хочу инициализировать построитель запросов таким образом и создавать цепочки запросов, используя операторы if.
$user = User::class(); // I know I can't use this line, however you'll get the idea.
if (isset($gender)) {
$user = $user->where('gender', $gender);
}
if (isset($age)) {
$user = $user->where('age', $age);
}
$users = $user->get()
Единственный способ начать запрос (в первой строке) с:
$user = User::where('username', '!=', null)
$query->whereNotNull('username')
вместо$query->where('username', '!=', null)
, поскольку он будет использовать родную грамматику вашего SQL-соединения (т. е. он более переносим между системами БД). - person Namoshek   schedule 18.07.2018isset()
, что, если у меня нет$request->dummy
в моем запросе, и я использую его вwhen()
какwhen($request->dummy..
- person senty   schedule 18.07.2018when($value, $callback, $default)
здесь. В основном он выполняет толькоif($value)
, поэтому использовать его наrequest()->get('field')
можно, но он может не работать, если у вас есть, например, ввод0
. - person Namoshek   schedule 18.07.2018