Исходя из вашего красноречивого кода, ваш текущий запрос будет выглядеть примерно так:
WHERE order_stage_id NOT IN (4,99) OR ( WHERE order_stage_id NOT IN (4,99) OR reference_number LIKE %XXXX% OR ...)
Для получения оператора SQL AND
необходимо использовать метод where()
, а затем использовать замыкание для вложения методов orWhere()
.
$q->whereNotIn('order_stage_id',[99,4])
->orWhere(function($query) {
$query->whereNotIn('order_stage_id',[99,4])
->where(function($query) {
$query->where('column_1', 'like', '%XXX%')
->orWhere('column_2', 'like', '%XXX%')
->orWhere('column_2', 'like', '%XXX%');
});
});
Не забывайте, что вам нужно будет передавать объект $request
каждому закрытию, чтобы иметь к нему доступ:
->where(function($query) use ($request) {