2014-09-11 141 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);  
}