2017-03-17 4 views
0

Ich benutze Laravel 5.4 und ich möchte die Suche zu filtern.Laravel-Filter-System mit Multi-Checkbox

seine mein Front-End-

filter search multi checkbox option

mein Code wie dieser

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(); 

    } 
} 

die

nur einen Eintrag Ergebnis sieht
+0

zeigen Sie Ihren Code zu sehen aussehen würde – sumit

Antwort

0

Sie einen anderen Ansatz whereIn() mit nehmen könnte, vorausgesetzt, Sie mark Eingabe eines ist Array von IDs wie [1, 4, 8, 22].

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() Schließung wird nur ausgeführt, wenn Sie Eingabe ‚Marke‘ senden. Tun es ohne wenn ähnliche

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

seiner sehr einfachen Versuch Ajax Verfahren zur filtern