gpt4 book ai didi

php - Laravel/PHP MySQL使用Json一对多关系

转载 作者:行者123 更新时间:2023-11-30 22:02:32 26 4
gpt4 key购买 nike

首先,以Json列的形式存储一对多关系是一个好主意,如果是的话,如何在laravel中编写查询以检索数据

例如:

我有活动表和垂直表

活动表

id | activity | verticals
1 | Dusting | [1,2]
2 | Oiling | [3]
3 | Mopping | [1,2,3]


垂直表

id | vertical
1 | House Keeping
2 | Pantry
3 | Engineering & Machinery


现在在我的显示活动列表的仪表板上,结果应该是

id | activity | verticals
1 | Dusting | Housekeeping, Pantry
2 | Oiling | Engineering & Machinery
3 | Mopping | Housekeeping, Pantry, Engineering & Machinery


现在,在传统的非json方法中,我会使用laravel Eloquent的self :: hasMany但如果使用json,我可以这样做吗?

还建议吗?

最佳答案

我创建了一个具有JSON关系的包:https://github.com/staudenmeir/eloquent-json-relations

您可以像这样创建多对多关系:



class Activity extends Model
{
use \Staudenmeir\EloquentJsonRelations\HasJsonRelationships;

protected $casts = [
'verticals' => 'json',
];

public function vertical()
{
return $this->belongsToJson(Vertical::class, 'verticals');
}
}

class Vertical extends Model
{
use \Staudenmeir\EloquentJsonRelations\HasJsonRelationships;

public function activities()
{
return $this->hasManyJson(Activity::class, 'verticals');
}
}

关于php - Laravel/PHP MySQL使用Json一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42929192/

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