2017-11-27 17 views
0

チェックボックスを使用して、ビュー内のデータをフィルタリングする方法を理解するために苦労しています。 1つの場所だけが選択されていれば、それは簡単です。しかし、複数の場所が選択されるとどうなるでしょうか?これは@foreachですか?Laravel:複数のチェックボックスからの入力に基づく結果のフィルタリング

マイビュー

<form method="post" action="filter">  
{{ csrf_field() }} 
<input type="checkbox" name="locationfilter[]" value="Chicago">Chicago</label> 
<input type="checkbox" name="locationfilter[]" value="New York">New York</label> 
<button type="submit" class="btn btn-primary"> Submit </button> 

私のコントローラ

$lofilter = implode(", ", $request->get('locationfilter')); 
$mypostings = Postings::where('location', 'LIKE', '%'. $lofilter .'%')->get(); 
+0

ビューまたはコントローラの位置をフィルタリングしようとしていますか? – darthaditya

+0

場所をOr条件でフィルタリングしますか? –

+0

'whereIN'条件はLaravelのコンマで区切られたマッチで動作します。 – Webinion

答えて

3

したい場合は、指定された配列、

users = DB::table('users')->whereIn('id', [1, 2, 3])->get(); 

から値を取得するためにwhereIn()機能を使用することができますLIKE演算子を使用するには

$checkbox = []; //assume this array as selected checkboxes 
DB::query() 
->Where(function ($query) use($checkbox) { 
    for ($i = 0; $i < count($checkbox); $i++){ 
      $query->orwhere('location', 'like', '%' . $checkbox [$i] .'%'); 
    } 
})->get(); 
+0

私はlaravel&eloquentの初心者ですが、$ query-> orwhereではなく$ query-> whereであるべきですか? – Radu

+0

これをお読みください、https://laravel.com/docs/5.2/queries#advanced-where-clauses – CasperSL

+0

ありがとうございました - 魅力的なように働いていました! – jlim

関連する問題