laravel 5或where for关系不能正常工作


laravel 5 orWhere for relationship does not work properly

我有这样的代码

$query->whereHas('filters',function($q) use ($filters) {
     $q->where('filter_id', $filters[0]);
     for($i = 1; $i < count($filters); $i++)
     {
         $q->orWhere('filter_id', $filters[$i]);
     }
});

问题是,当搜索一个过滤器( count($filters) == 1 )时,结果是正确的,并显示与该过滤器相关的项目,但当我搜索多个过滤器( count($filters) > 1 )时,结果是db中的所有项目,就像没有搜索一样

我认为您可以完成与wherein呼叫相同的事情。

$query->whereHas('filters', function($q) use ($filters){
    $q->whereIn('filter_id',$filters);
});