努力弄清楚如何使用复选框过滤视图中的数据。如果只选择了一个位置,那么它很简单。但如果选择了多个位置怎么办?这是@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();
答案 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();