我有这段代码
$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中的所有项目它没有搜索完毕
我能做什么?
答案 0 :(得分:0)
我认为你可以通过wherein
电话完成同样的事情。
$query->whereHas('filters', function($q) use ($filters){
$q->whereIn('filter_id',$filters);
});