Php 带Api资源的嵌套belongTomany中的渴望加载轴心
我需要你的帮助 使用ApiResources时返回数据透视表信息时遇到问题 如果我有这样一个模型: Post.phpPhp 带Api资源的嵌套belongTomany中的渴望加载轴心,php,laravel,api,pivot,many-to-many,Php,Laravel,Api,Pivot,Many To Many,我需要你的帮助 使用ApiResources时返回数据透视表信息时遇到问题 如果我有这样一个模型: Post.php public函数likes() { 返回$this->belongtomany(比如::class) ->withPivot(['points'])//我想在我的PostResource::集合中使用它! } 定义其资源时: LikeResource.php 公共功能待命($request) { 返回[ 'like_field'=>this->like_field ]; }
public函数likes()
{
返回$this->belongtomany(比如::class)
->withPivot(['points'])//我想在我的PostResource::集合中使用它!
}
定义其资源时:
LikeResource.php
公共功能待命($request)
{
返回[
'like_field'=>this->like_field
];
}
PostResource.php
公共功能待命($request)
{
返回[
'title'=>$this->title,
'likes'=>LikeResource::collection($this->whenLoaded('likes'))
];
}
然后在PostController.php中
return PostResource::collection(Post::with('likes')->get())
它将返回如下内容:
控制器响应
[
{
'title' => 'Post 1'
'likes' => [
{
'like_field' => 'Test'
},
{
'like_field' => 'Test 2'
}
]
},
{
'title' => 'Post 2',
...
}
]
问题是,使用LikeResource::collection()
时,它不会附加透视信息。在定义PostResource时,如何添加透视表的'points'
仅此而已,
谢谢
解决方案
好的,只要读入一点,就可以返回轴心信息,只需使用方法$this->whenpivotload()
因此,PostResource变为:
公共功能待命($request)
{
返回[
'title'=>$this->title,
'likes'=>LikeResource::collection($this->whenLoaded('likes')),
'like_post'=>this->whenpivotload('like_post',function(){
返回$this->pivot->like\u字段;
})
];
}