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