1

私は4つのテーブルを持っています。コンボ、製品、product_variants、combo_product (ピボット テーブル)。ombo_productには 2 つの列、つまり参照、 reference_id があります

ここで、関係条件ベースを付けたいと思います。

if(reference == 'product') then with('products.product_details')および

if(reference == 'product_variant') then 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');
}

1 つの関係を取得できましたが、もう 1 つの関係条件を取得できません。これが私のコードです。

Combo::whereComboId($id)->with([
   'products' => function ($query) {
        $query->with(['product_details'])
            ->where('product_reference', 'product'); 
         }
    ])->get();
4

0 に答える 0