2017-03-17 6 views

答えて

0

を引き起こすこの

class DeviceFilterController extends Controller 
{ 
    public function filter(Feature $feature){ 

     $marks = isset($_POST["mark"]) ? $_POST["mark"] : null; 

     $feature = $feature->newQuery(); 

     if(isset($marks)) 
     { 
      foreach ($marks as $value) 
      { 
       $feature->where('device_mark', $value); 
      } 
     } 

     return $feature->get(); 

    } 
} 

のように見えるあなたを想定し、whereIn()を使用して、異なるアプローチを取ることができるmark入力します[1, 4, 8, 22]のようなIDの配列。

public function filter(Request $request) 
{ 
    $features = Feature::when($request->has('mark'), function($query) use ($request) { 
     return $query->whereIn('device_mark', $request->mark); //Assuming you are passing an array of IDs 
    })->get(); 

    return $features; 
} 

when()「マーク」入力を送信している場合にのみ、クロージャが実行されます。フィルタの検索のために、この

public function filter(Request $request) 
{ 
    $features = []; 

    if ($request->has('mark') && $request->mark != '') { 
     $features = Feature::whereIn('device_mark', $request->mark)->get(); 
    } else { 
     $features = Feature::get(); 
    } 

    return $features; 
} 
0

その非常に単純なトライAjaxの方法のように見えるだろうというときせずにそれをやって

関連する問題