【发布时间】:2021-01-01 03:21:38
【问题描述】:
我与数据透视表存在多对多关系。关系中的两个模型是社区和角色。在数据透视表中,我有关系中实例的 ID 和一个名为“member_count”的额外字段,用于计算该特定关系中的成员数量。要访问成员计数字段,我在 Community 模型中包含以下函数以始终返回它:
public function personas()
{
return $this->belongsToMany('App\Persona')->withPivot('member_count');
}
这会在我检索社区时返回以下内容:
{
"id": "3304806f-9172-4690-b9b7-fa672319eaef",
"name": "Some Community",
"site_id": "ee09da48-9ba6-42a9-9f72-4d3ca06ffd2f",
"internal_external": "internal",
"created_at": "2020-09-11T14:36:23.000000Z",
"updated_at": "2020-09-11T14:36:23.000000Z",
"personas": [
{
"id": "1447bc79-f54e-49eb-b33d-acc1c43633e5",
"name": "Some Persona",
"created_at": "2020-09-11T14:41:27.000000Z",
"updated_at": "2020-09-11T14:41:27.000000Z",
"pivot": {
"community_id": "3304806f-9172-4690-b9b7-fa672319eaef",
"persona_id": "1447bc79-f54e-49eb-b33d-acc1c43633e5",
"member_count": 10
}
},
{
"id": "ca53ec58-a4e8-4330-a5c3-8dea2235b01f",
"name": "Another Persona",
"created_at": "2020-09-11T14:41:15.000000Z",
"updated_at": "2020-09-11T14:41:15.000000Z",
"pivot": {
"community_id": "3304806f-9172-4690-b9b7-fa672319eaef",
"persona_id": "ca53ec58-a4e8-4330-a5c3-8dea2235b01f",
"member_count": 5
}
}
]
},
我想将 member_count 字段上移一级,以便作为 Persona 对象的一部分返回。有没有办法在 Laravel 中内置?
【问题讨论】:
-
您可以通过使用自定义数据库查询来做到这一点。我认为没有办法直接使用 Eloquent 进行操作