多对多关系约束
表:产品 产品编号 类别
表:功能 Feature_id:11 Feature_name:远程
数据透视表:FeatureProduct Feature_id Product_id
$products = App\Product::with([‘features' => function ($query) {
$query->where(‘id’, 11);
}])->where(‘category_id’, 17)->get();
仍然会获得所有类别= 11的产品,而不是滤除feature_id = 11
:with Query where子句,我不知道应该输入什么,它是ID属于功能。
这是单个产品的输出方式
Product {#1372 ▼
#original: array:13 [▼
"id" => 1
"code" => "PL6881"
"v_description" => "E14 41 bóng + LED pha lê 642 hạt"
"width" => 1200
"length" => null
"height" => 1800
"price" => 47800000
"vendor_id" => 1
"category_id" => 17
"active" => 1
"discount" => 0
"hero" => 0
"promote" => 0
]
#relations: array:1 [▼
"features" => Collection {#5858 ▼
#items: array:3 [▼
0 => Feature {#3149 ▼
#attributes: array:4 [▼
"id" => 3
"code" => "Chau Au"
"v_description" => "Châu Âu"
"att_cate_id" => 1
]
}
1 => Feature {#3340 ▶}
2 => Feature {#3492 ▶}
]
}
]
}
答案 0 :(得分:0)
尝试以下代码,
$products = App\Product::with([‘features'])
->whereHas(‘features', function ($query) {
$query->where(‘id’, 11);
})->where(‘category_id’, 17)->get();
我已经编辑了答案。请立即检查
答案 1 :(得分:0)
I actually found this useful
$products = Product::with('features')->whereHas('features', function ($query) {
return $query->where('id', 3);
})->where('category_id',17)->get();