我有4张桌子。 组合,产品,product_variants,combo_product (数据透视表)。 combo_product 有2列,即引用,reference_id 。
现在,我想基于关系条件。
if(reference =='product'),然后 with('products.product_details')和
if(reference =='product_variant'),然后 with('products.product_variant_details')。
这是我的关系:
Combo.php
public function products()
{
return $this->hasMany('App\V1\Models\ComboProduct');
}
ComboProduct.php
public function product_details()
{
return $this->belongsTo('App\V1\Models\Product', 'product_reference_id');
}
public function product_variant_details()
{
return $this->belongsTo('App\V1\Models\ProductVariant', 'product_reference_id', 'product_variant_id');
}
我设法得到一个关系,但我不能得到其他关系条件。 这是我的代码。
Combo::whereComboId($id)->with([
'products' => function ($query) {
$query->with(['product_details'])
->where('product_reference', 'product');
}
])->get();