2016-07-12 18 views
0

Wie können Sie diese Where-Klausel im Abfrage-Generator tun?Laravel Query Builder - Multi-Where-Klausel

WHERE 
    (ENTRY_MODE = 'ACTUAL' AND r.YEAR BETWEEN '2011' AND '2014') 
    OR 
    (ENTRY_MODE = 'BUDGETED' AND r.YEAR = '2014') 

Hier ist mein aktueller Code

->where(function($query) use($year, $yearFrom, $yearTo){ 
    $query->where(function($query) use ($year){ 
     $query->where('eh.ENTRY_MODE', 'BUDGETED') 
     ->where('r.YEAR', $year) 
    })->orWhere(function($query) use ($yearFrom, $yearTo){ 
     $query->where('eh.ENTRY_MODE', 'ACTUAL') 
     ->whereIn('r.YEAR', array($yearFrom, $yearTo)) 
    }) 
})  

Der Code gibt mir über ein syntax error, unexpected '}' auf der Linie 5 (oder Wo Teil)

Antwort

1

Nur semicolons Problem, versuchen Sie dies:

->where(function($query) use($year, $yearFrom, $yearTo){ 
     $query->where(function($query) use ($year){ 
      $query->where('eh.ENTRY_MODE', 'BUDGETED') 
      ->where('r.YEAR', $year); //<--semicolon here 
     })->orWhere(function($query) use ($yearFrom, $yearTo){ 
      $query->where('eh.ENTRY_MODE', 'ACTUAL') 
      ->whereIn('r.YEAR', array($yearFrom, $yearTo)); //<--semicolon here 
     }); //<--semicolon here 
    }); //<-- and one last semicolon here if this is the end of your chain. 
+0

Oh verpasste das! Danke! Ich dachte, es wäre in Ordnung, das Semikolon nicht einzubeziehen. – Kiel

Verwandte Themen