Php 带Api资源的嵌套belongTomany中的渴望加载轴心

Php 带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 ]; }

我需要你的帮助

使用ApiResources时返回数据透视表信息时遇到问题

如果我有这样一个模型:

Post.php

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字段;
})
];
}