我有这样的json:
"member_skills": [
{
"id": 69,
"skill_type_id": 6,
"title": "Piano",
"created_at": null,
"updated_at": null,
"pivot": {
"member_id": 4,
"skill_id": 69,
"description": "description",
"other_skill": null
}
}
],
关系是这样的:
public function memberSkills(): BelongsToMany
{
return $this->belongsToMany(Skills::class, MemberSkill::class, null, 'skill_id')->withPivot("description", "other_skill", "name");
}
我有媒体库,我想将这些媒体库项目注入到任何技能的子集中。
每项技能都有媒体。
我该怎么做?
我假设您已正确设置
Skill
模型以与 Media
交互。
您不能在
with('media')
关系定义中简单地使用 BelongsToMany
。相反,您可以在获取媒体时手动将媒体附加到您的技能中,例如,
$member = Member::with('memberSkills')->find($memberId);
$member->memberSkills->each(function ($skill) {
$skill->media = $skill->getMedia('media_collection');
});
然后你可以返回技能例如Json Response,
return response()->json($member->memberSkills);