2015-05-25 18 views
30

tento di ottenere risultati dalla tabella con più clausole e/o.Laravel 5 Eloquent dove e in Clausole

La mia dichiarazione di SQL è:

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

Come posso ottenere questo con laravel Eloquente?

mio codice in laravel è:

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

risposta

50

Utilizzando advanced wheres:

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

O, meglio ancora, utilizzando whereIn():

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

Thank You Questo è il lavoro :) Ma come posso ottenere questo con un array per cabina se piace il mio array: arrCab [2,4,6] – Crni

+0

Perché è meglio, e da dove viene la variabile '$ cabIds'? – raarts

+0

la seconda opzione è la migliore –