2015-05-25 10 views
30

Próbuję uzyskać wyniki z tabeli z wieloma miejscami i/lub klauzulami.Laravel 5 Wymowne miejsce gdzie i lub w klauzulach

My SQL jest:

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

Jak mogę dostać ten z laravel wymowne?

mój kod w laravel jest:

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

Odpowiedz

50

Korzystanie advanced wheres:

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

Albo, jeszcze lepiej, stosując whereIn():

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

Thank You to działa :) Ale jak mogę to uzyskać z tablicą dla taksówki, jeśli moja tablica lubi: arrCab [2,4,6] – Crni

+0

Dlaczego jest lepiej i skąd pochodzi zmienna '$ cabIds'? – raarts

+0

druga opcja jest najlepsza –