2014-09-11 8 views
2

간단한 프로그래밍을 수행하기 위해 Laravel 4를 사용하고 있습니다. Laravel 데이터베이스의 유창한 기능을 사용하여 데이터베이스 결과를 필터링하고 싶습니다.Laravel 4 동적 데이터베이스 필터

$filter = Input::get('filter'); 
$txtfilter = Input::get('txtfilter'); 
$wh = ''; 
switch ($filter) { 
     case 'hostname': 
      $wh = "->where('hostname',$txtfilter)"; 
     case 'error': 
      $wh = "->where('error',$txtfilter)"; 
     default: 
      $wh = ""; 
} 

은 기본적으로 내가 아래에 위의 $wh 내가이 작업을 수행하려면 어떻게

$logs = DB::table('sys_logs') 
    ->orderBy('created_at', 'DESC') 
    $wh 
    ->paginate(200); 

를 쿼리에 추가 할 :

는 나는 내가 선택 쿼리에 전달해야하는 필터가?

TQ 아마

답변

3

그건 당신이 우리에게 준 예를 들어 할 것입니다 :

$query = DB::table('sys_logs')->orderBy('created_at', 'DESC'); 

$filter = Input::get('filter'); 
$txtfilter = Input::get('txtfilter'); 

if ($filter, in_array('hostname','error')) 
{ 
    $query->where($filter, $txtFilter); 
} 

return $query->paginate(200); 

을하지만 당신은 또한

foreach(Input::all() as $key => $value) 
{ 
    $query->where($key, $value);  
} 
같은 일을 할 수있다