1

我有 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')

这是我的关系:

组合.php

public function products()
{
    return $this->hasMany('App\V1\Models\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();
4

0 回答 0