您好我有一对多关系的类别和产品表。我想选择product_ids中产品的类别(它将从其他查询中获得)。我试过了
$categories = Category::with(['products' => function ($query) use($product_ids) {
$query->whereIn('id', $product_ids);
}])
->get();
以上查询将选择所有类别,即使产品不在product_ids中(如果不在produc_id中,则为空数组)但我只想选择那些在product_ids.please帮助中有产品的类别
答案 0 :(得分:0)
我刚刚通过添加whereHas
解决了这个问题$categories = Category::with(['products' => function ($query) use($product_ids) {
$query->whereIn('id', $product_ids);
}])
->whereHas('products', function ($q) use($product_ids) {
$q->whereIn('id', $product_ids);
})
->get();
答案 1 :(得分:0)
使用whereHas
$categories = Category::whereHas('products', function ($query) use($product_ids) {
$query->whereIn('id', $product_ids);
})
->get();