【发布时间】:2019-07-11 14:09:42
【问题描述】:
我有 2 个表(产品和位置),我需要从中获取所有产品和产品一次可用的位置。 产品表如下所示:
Product| Price | Product_id
Rice | 45.00 | 101
Beans| 30.00 | 102
Locations 表如下所示:
Product_id | location
101 | Chicago
101 | Paris
101 | Lagos
102 | London
102 | New York
我正在使用 Laravel Eloquent 模型来尝试解决这个问题,但我不断收到同一产品的多行。
我想要得到的结果:
$result =
{
{"Rice",
45.00,
101,
location: {"Chicago", "Paris", "Lagos"}
},
{"Beans",
30.00,
102,
location: {"London", "New York"}
}
}
任何提供的帮助将不胜感激。
【问题讨论】:
-
正确的方式是将数据库更改为 3 个表并建立多对多关系。因为我认为来自芝加哥的产品可以不止一种。所以表products,表locations,表location_product(id,location_id,product_id)
-
你能显示你当前的查询和你的模型的代码吗?
-
@Autista_z 您能否通过一个工作示例向我展示如何通过您的方法在一个选择语句中获得完整结果。谢谢。
标签: mysql arrays json laravel eloquent