我想进行以下工作:
我有一个UserGroup
,在discounts
的列表上应该有ProductGroups
。
UserGroup
{
"data": {
"id": 2,
"title": "Test",
"discounts": null,
}
}
ProductGroups
{
"data": [
{
"id": 1,
"title": "Group1"
},
{
"id": 2,
"title": "Group2"
}
]
}
UserGroup
{
"data": {
"id": 2,
"title": "Test",
"discounts": [
{
"productgroup_id": 1,
"discount": 0
},
{
"productgroup_id": 2,
"discount": 10
}
]
}
}
所以现在我想知道:如何最好地保存它?首先,我想到了JSON。问题:如果删除ProductGroup
,则不会使用级联更新UserGroup
-discounts
-JSON。
答案 0 :(得分:3)
您可以添加具有列user_group_product_groups
,user_group_id
和product_groups_id
的数据透视表discount
在您的ProductGroup
模型中添加
public function userGroups(){
return $this->belongsToMany(UserGroup::class)->withPivot('discount');
}
在您的UserGroup
模型中添加
public function productGroups(){
return $this->belongsToMany(ProductGroup::class)->withPivot('discount');
}
您现在可以使用$productGroup->userGroups
,它将包括数据透视表中的折扣。
或者使用$userGroup->productGroups
,它将包括数据透视表中的折扣。