我想按类别过滤产品(多对多关系)。基本上,用户选择要显示的类别。我要过滤的类别在$request->keywords. 这是我尝试过的:
$products = Product::all();
foreach($request->keywords as $keyword) {
$products = Product::whereHas('categories', function($q) use ($keyword){
$q->where('title', '=', $keyword);
})->get();
}
return response()->json($products);
问题是这并没有得到所有的类别,只得到数组中最后一个类别的产品。我猜在这一点上:$q->where('title', '=', $keyword);,$q不保留上次循环迭代的结果,但始终删除上次循环结果。我也用 尝试过同样的事情$q->orWhere('title', '=', $keyword);,但实际上并没有给我任何结果。
慕标5832272
holdtom
收到一只叮咚