2016-07-12 2 views
0

어떻게 쿼리 작성기에서 절을 사용할 수 있습니까? 여기 Laravel 쿼리 작성기 - 다중 위치 절

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

은 위의 코드는 나에게 5 행에 syntax error, unexpected '}'를 제공 내 현재 코드

->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)) 
    }) 
})  

(또는 일부 경우)

답변

1

그냥 semicolons 문제는,이 시도 :

->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

오 이런! 고맙습니다! 나는 그것이 세미콜론을 포함하지 않는 것이 좋다고 생각했다. – Kiel