【发布时间】:2019-02-03 09:48:43
【问题描述】:
这是我项目中表格的简化版。
表格项目
| id | name |
| ---- | ------ |
| 1 | Apple |
| 2 | Orange |
| 3 | Mango |
表定价组
| id | name | deleted |
| ---- | ------- | ------- |
| 1 | Reguler | 0 |
| 2 | VIP | 0 |
| 3 | VVIP | 1 |
表 price_lists
| id | item_id | group_id | price | date |
| ---- | ------- | -------- | ----- | ---------- |
| 1 | 1 | 1 | 100 | 2019-01-20 |
| 2 | 1 | 2 | 120 | 2019-01-20 |
| 3 | 1 | 1 | 110 | 2019-02-01 |
| 4 | 2 | 1 | 80 | 2019-01-31 |
| 5 | 2 | 3 | 120 | 2019-01-10 |
Items 和 PricingGroups 是多对多关系,数据透视表是 price_lists。
型号:Item、PricingGroup、PriceList
所以我想在模型 Item 中有一个名为 prices 的雄辩关系来获取每个 PricingGroups 的价格。
class Item extends Model {
public function prices() {
// what should I put here??
}
}
我想要的输出是这样的:
"items": [
{
"id": 1,
"name": "Apple",
"prices": [
{
"id": 1,
"name": "Reguler",
"price": 110
},
{
"id": 2,
"name": "VIP",
"price": 120
}
]
},
{
"id": 2,
"name": "Orange",
"prices": [
{
"id": 1,
"name": "Reguler",
"price": 80
},
{
"id": 2,
"name": "VIP",
"price": 0
}
]
},
{
"id": 3,
"name": "Mango",
"prices": [
{
"id": 1,
"name": "Reguler",
"price": 0
},
{
"id": 2,
"name": "VIP",
"price": 0
}
]
}
]
注意:
- 如果没有记录,则使用
price=0显示有效定价组price_lists中的项目。请参阅 Orange-VIP 和 Mango 案例。 - 获取最新价格。请参阅 Apple-Reguler 案例。
这可能吗?
【问题讨论】:
-
那么在您的想象场景中,一个项目是否有可能在单个定价组中有两个不同的价格?
-
@MojtabaHn 是的,就像苹果调节器一样。但是输出需要显示最新的价格。