使用 Array 的值在 Laravel 中搜索
Search in Laravel with the value of Array
我正在 laravel 中使用多过滤器应用构建搜索。它工作正常,直到我有很多特定请求的复选框,比如年龄。如果我只检查单个值,搜索功能可以正常工作。但如果我检查 2 个或更多值,它将不会搜索。谁能帮我解决这个问题。
这是我的控制器
if ($request->has('age')) {
$age = $request->input('age');
$ageString = implode(" , ", $age);
$nursery->where('acceptingAge', 'LIKE', '%' . $ageString . '%');
}
这是我的表格
<input type="checkbox" class="custom-control-input" id="1year" name="age[]" value="5 years old">
<input type="checkbox" class="custom-control-input" id="1year" name="age[]" value="4 years old">
$nersery->whereIn('acceptingAge', $age);
有关 whereIn 的更多信息:
https://laravel.com/docs/5.5/queries#where-clauses
更新
试试这个
$nersery->where(function($query) use ($age) {
foreach ($age as $key => $a) {
if ($key === 0) {
$query = $query->where('acceptingAge', $a);
continue;
}
$query = $query->orWhere('acceptingAge', $a);
}
});
看起来你的 acceptingAge 数据是“5 岁,3 岁,1 岁”
怎么样
$nursery= new Nursery;
if($request->has('age')){
foreach($request->input('age') as $age){
$nursery= $nursery->where('acceptingAge', 'LIKE', '%' . $age . '%');
}
}
$nursery->get();
我正在 laravel 中使用多过滤器应用构建搜索。它工作正常,直到我有很多特定请求的复选框,比如年龄。如果我只检查单个值,搜索功能可以正常工作。但如果我检查 2 个或更多值,它将不会搜索。谁能帮我解决这个问题。
这是我的控制器
if ($request->has('age')) {
$age = $request->input('age');
$ageString = implode(" , ", $age);
$nursery->where('acceptingAge', 'LIKE', '%' . $ageString . '%');
}
这是我的表格
<input type="checkbox" class="custom-control-input" id="1year" name="age[]" value="5 years old">
<input type="checkbox" class="custom-control-input" id="1year" name="age[]" value="4 years old">
$nersery->whereIn('acceptingAge', $age);
有关 whereIn 的更多信息:
https://laravel.com/docs/5.5/queries#where-clauses
更新
试试这个
$nersery->where(function($query) use ($age) {
foreach ($age as $key => $a) {
if ($key === 0) {
$query = $query->where('acceptingAge', $a);
continue;
}
$query = $query->orWhere('acceptingAge', $a);
}
});
看起来你的 acceptingAge 数据是“5 岁,3 岁,1 岁”
怎么样
$nursery= new Nursery;
if($request->has('age')){
foreach($request->input('age') as $age){
$nursery= $nursery->where('acceptingAge', 'LIKE', '%' . $age . '%');
}
}
$nursery->get();