Laravel可变产品的雄辩关系

时间:2018-10-10 19:17:25

标签: php laravel eloquent eloquent--relationship

我正在建立一个电子商务网站,该网站具有Products with variation(多种选择的产品),例如,一件T恤可以将variation/attribute的{​​{1}}与以下{{1}分别为Color and Size的}。 在Options之前,我有以下White, Black, Blue and Large, Medium, Small

`

Variation and options

`

`

Eloquent Model

`

`

class Product extends Model
{

    public $with = ['variations'];

    public function  variations(){
 return $this->belongsToMany(\App\Variation::class, 'option_product_variations')
          ->withPivot(["id","unit_selling_cost"]); 
        }

}

`

`

class Variation extends Model
{
    public $with = ['options','option_product_variations'];


    public function options()
    {
        return $this->hasMany(\App\Option::class);
    }

    public function  products(){

        return $this->belongsToMany(\App\Product::class, 'option_product_variations');       

    }


    public function option_product_variations()
    {      
       return $this->hasMany(\App\Option_product_variation::class);
     }

}

`

`

class Option extends Model
{
    protected $fillable = ['variation_id','title','slug','remark'];
    protected $primaryKey = 'id';

    public $with = ['option_product_variations'];


    public function variation()
    {
        return $this->belongsTo(\App\Variation::class);
    }


    public function option_product_variations()
    {      
       return $this->hasMany(\App\Option_product_variation::class);
     }
}

`

如何定义关系,以便在查询产品模型后可以加载与产品相关的所有变体和选项?

我希望为构建效率的Eloquent模型提供更好的建议。

0 个答案:

没有答案