我有一个树中彼此相关的类别。每个类别hasMany
孩子。每个末端类别hasMany
产品。laravel中的负载关系与关系的条件
该产品还有belongsToMany
不同的类型。
我想急于加载与他们的孩子和产品类别,但我也想提出一个条件,产品是某种类型。
这是我的类模型看起来像
public function children()
{
return $this->hasMany('Category', 'parent_id', 'id');
}
public function products()
{
return $this->hasMany('Product', 'category_id', 'id');
}
的产品型号
public function types()
{
return $this->belongsToMany(type::class, 'product_type');
}
在我的数据库中,我有四个表: 类别,产品,类型和产品类型
我已经尝试过这样急于加载,但它会加载所有产品,而不仅仅是满足条件的产品:
$parentLineCategories = ProductCategory::with('children')->with(['products'=> function ($query) {
$query->join('product_type', 'product_type.product_id', '=', 'product.id')
->where('product_type.type_id', '=', $SpecificID);
}]])->get();
这仍然给了我所有的产品 – user3552551
你是否在寻找与'子女'或父母'类别'有关的'产品' – Gayan
请检查它是否不是数据问题。即属于同一个“父类别”的所有“产品” – Gayan