2015-05-25 23 views
30

tôi cố gắng lấy kết quả từ bảng với nhiều vị trí và/hoặc mệnh đề.Laravel 5 Eloquent ở đâu và hoặc trong các khoản

câu lệnh SQL của tôi là:

SELECT * FROM tbl 
WHERE m__Id = 46 
AND 
t_Id = 2 
AND 
(Cab = 2 OR Cab = 4) 

Làm thế nào tôi có thể có được điều này với Laravel hùng biện?

Mã của tôi trong Laravel là:

$BType = CabRes::where('m_Id', '=', '46') 
         ->where('t_Id', '=', '2') 
         ->where('Cab', '2') 
         ->orWhere('Cab', '=', '4') 
         ->get(); 

Trả lời

50

Sử dụng advanced wheres:

CabRes::where('m__Id', 46) 
     ->where('t_Id', 2) 
     ->where(function($q) { 
      $q->where('Cab', 2) 
      ->orWhere('Cab', 4); 
     }) 
     ->get(); 

Hoặc, thậm chí tốt hơn, sử dụng whereIn():

CabRes::where('m__Id', 46) 
     ->where('t_Id', 2) 
     ->whereIn('Cab', $cabIds) 
     ->get(); 
+0

cảm ơn này đang làm việc :) Nhưng làm thế nào tôi có thể nhận được điều này với một mảng cho cab nếu mảng của tôi thích: arrCab [2,4,6] – Crni

+0

Tại sao nó tốt hơn và biến '$ cabIds' đến từ đâu? – raarts

+0

tùy chọn thứ hai là tùy chọn tốt nhất –

Các vấn đề liên quan