gpt4 book ai didi

Laravel Eloquent 三个模型之间的多对多关系

转载 作者:行者123 更新时间:2023-12-02 12:55:13 25 4
gpt4 key购买 nike

假设我有以下表结构 countries , productssuppliers :

countries
------------------------
id
name
code
product
------------------------
id
name
price
suppliers
------------------------
id
name

一个product可以以不同的方式出售countries但是supplier其中product可以不同。考虑到这一点,我做了一个 relations用于跟踪哪个 supplier 的表正在交付 product其中country :

relations
------------------------
country_id
product_id
supplier_id

假设我有一个产品 A我需要将其存储在国家/地区 USCA但这些国家的供应商是XY分别。结构看起来像这样:

countries
-------------------------------
id | name | code
-------------------------------
1 | United States | US
2 | Canada | CA
product
-------------------------------
id | name | price
-------------------------------
1 | A | 3.99
suppliers
------------
id | name
------------
1 | X
2 | Y
relations
-------------------------------
country_id | product_id | supplier_id
-------------------------------
1 | 1 | 1
2 | 1 | 2

我的问题是如何使用此表的 Eloquent 关系,因为多对多关系仅适用于两个表。对此还有其他解决方法吗?或者还有其他有效的方法来实现这个场景吗?

感谢您的帮助。

最佳答案

没有内置方法可以使用三个表建立关系。每当我自己遇到类似的事情时,最好的解决方案似乎是制作一个与三个表有关系的中间模型。

因此,在您的情况下,我将创建一个具有以下关系的 SupplierProduct:countrysupplierproduct .

关于Laravel Eloquent 三个模型之间的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59152763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com