2016-01-04 2 views
2

Мой Laravel запрос, как это:Как добавить скобки в запрос laravel?

$customer = Customer::where('full_name', 'iLIKE', '%'.$param['keyword'].'%') 
           ->orWhere('mobile', 'iLIKE', '%'.$param['keyword'].'%') 
           ->orWhere('phone', 'iLIKE', '%'.$param['keyword'].'%') 
           ->where('published','1') 
           ->where('customer_status','N') 
           ->orderBy('full_name', 'ASC')->get(); 

Если я печатаю регулярное использование запроса это:

DB::listen(function($sql, $bindings, $time) { 
      \Log::info($sql); 
      \Log::info(print_r($bindings,1)); 
      \Log::info($time); 
     }); 

Результат:

select * from "ss_customer" 
where "full_name" iLIKE '%ronaldo%' or "mobile" iLIKE '%ronaldo%' or "phone" iLIKE '%ronaldo%' and "published" = 1 and "customer_status" = 'N' 
order by "full_name" asc 

Я хотел бы добавить скобки так запроса будет выглядеть следующим образом:

select * from "ss_customer" 
where ("full_name" iLIKE '%ronaldo%' or "mobile" iLIKE '%ronaldo%' or "phone" iLIKE '%ronaldo%') and "published" = 1 and "customer_status" = 'N' 
order by "full_name" asc 

Как добавить скобки в запрос laravel?

Спасибо

ответ

2

Это легко, просто передать запрос как закрытие

 $customer = Customer::where(function($query) use ($param) { 
     $query->where('full_name', 'iLIKE', '%'.$param['keyword'].'%') 
       ->orWhere('mobile', 'iLIKE', '%'.$param['keyword'].'%') 
       ->orWhere('phone', 'iLIKE', '%'.$param['keyword'].'%'); 
    })->where('published','1') 
     ->where('customer_status','N') 
     ->orderBy('full_name', 'ASC')->get(); 
+0

Спасибо. Работает –

Смежные вопросы