php - 从数据透视表创建 hasMany 或一对多关系 - Laravel
问题描述
我有 3 张桌子:
公司
产品
图片
现在,公司和产品是多对多的关系。
意思是,1 家公司可以有很多产品,一个产品可以属于多个公司。因此,我有一个名为Companies_products的数据透视表,其中包含数据透视表或附加列,例如:价格、折扣、状态等...
注意:产品表仅代表通用数据,也就是说,它没有价格、状态等...产品仅与数据透视列一起完成,因为它使每个公司的产品都独一无二。
一切都很好,直到这里。现在因为数据透视表代表每个公司的独特产品列。我还想将产品图像表附加到这个数据透视表。这意味着,我的结构将是每个枢轴行 hasMany product_images。
但是在 Laravel 中,我猜数据透视表没有模型,不鼓励这样做。那么如何用数据透视表实现has-Many呢?
或者有什么更好的解决方案来构建我的表格或数据?
总之,
我有 1 个公司表和 1 个产品表(唯一)。
公司通过添加额外的数据和图像(数组)来创建最终产品。我可以处理作为数据透视列但不能作为图像的额外数据(在这种情况下是图像数组。我不能直接在产品表级别有一对多,因为每个公司都会向其中添加一个带有额外数据的产品。
解决方案
您可以为数据透视表定义模型。它包含在文档的定义自定义中间表模型中。为此,您的模型的类应该扩展:
Illuminate\Database\Eloquent\Relations\Pivot
代替
Illuminate\Database\Eloquent\Model
.
推荐阅读
- c# - OData v4 扩展语法返回错误“...属性 'ProductType' 不能在 $expand 查询选项中使用。”
- ionic-framework - Ionic 4:离子选择在 IOS 上效果不佳
- reactjs - 使用 Axios 在 ReactJS 中访问被 CORS 策略阻止的 XMLHttpRequest
- python - 如何使用 matplotlib 的颜色图初始化调色板?
- flutter - Flutter 中的命名路由如何消除重复?
- decimal - 电源查询舍入不正确,不正确向上或向下舍入
- google-cloud-platform - Google Cloud Service 帐户具有 Translate API 访问权限,但未分配任何角色
- javascript - 将字符串转换为 Spinal Case
- python - 通过不同的索引数组切片矩阵
- flutter - 有稳定的小部件列表吗?