【问题标题】:Laravel Eloquent: Product, Attributes and Attribute Values RelationshipLaravel Eloquent:产品、属性和属性值的关系
【发布时间】:2020-09-07 02:02:38
【问题描述】:

我有一个产品和属性关系的场景。

型号:

  1. 产品(表:产品
  2. 属性(表:属性
  3. 属性值(表:attribute_values,外键:attribute_id

一个产品可以有多个属性,所以使用 多对多 关系 b/w 产品和属性会很容易

模型:属性

<?php

class Attribute extends Model{
    public function products()
    {
       return $this->belongsToMany(Product::class);
    }
}

型号:产品

class Product extends Model{
    public function attributes()
    {
       return $this->belongsToMany(Attribute::class);
    }
}

但是,在为项目分配属性时,用户可以选择退出 attribute_values 中的属性值之一,即分配给属性的值。

我怎样才能以雄辩的方式管理这个?

【问题讨论】:

    标签: php mysql laravel eloquent orm


    【解决方案1】:

    在这种情况下,我会在 products 和 attribute_values 之间创建一个 Pivot,然后您可以像这样使用“Eloquent 方式”:

    $products->sync(AttributeValues::where('attribute_id',$attribute_id);
    

    如果你想分离单个属性值,你可以使用它的实例分离它

    【讨论】:

    • 谢谢,我已经按照您的建议重新构建了架构。
    • 嗨 @Shaheryar TVS 你能帮我解决同样的问题吗
    【解决方案2】:

    我设计了一个数据库模式,是这样吗?

    【讨论】:

    • ItemAttribute不需要是value
    猜你喜欢
    • 2020-02-18
    • 2017-04-02
    • 2020-06-18
    • 1970-01-01
    • 2015-11-22
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多