Laravel:根据多个复选框

时间:2017-11-27 06:16:03

标签: laravel filter

努力弄清楚如何使用复选框过滤视图中的数据。如果只选择了一个位置,那么它很简单。但如果选择了多个位置怎么办?这是@foreach吗?

我的观点

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

1 个答案:

答案 0 :(得分:3)

您可以使用whereIn()函数从给定数组中获取值

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

如果您想使用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();