【发布时间】:2019-09-05 05:09:48
【问题描述】:
我正在使用 laravel API 资源。当我们不使用任何资源集合时,我们会使用 paginate(10) 获得分页链接等。但是当我使用 Resource::collection 时,我什么也得不到,只有我放入资源中的字段。
这是我的控制器
return response()->json([
"items" => LatestProjectsResource::collection(Project::has('pages')->where('type', $type)->latest()->paginate(20))
]);
这是我的资源
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->name,
'slug' => $this->slug,
'url' => $this->url,
'thumbnail' => new ThumbnailResource($this->thumbnail),
];
}
结果
我尝试了一些来自在线社区的答案,包括这个Customising Laravel 5.5 Api Resource Collection pagination 之一,但它不起作用
我试过$this->collection,但没有成功
请帮帮我。
【问题讨论】:
-
您是否尝试过从您的资源中返回
['data' => $this->collection]? -
是的!它给了我 null
-
链接因您的自定义响应而丢失。它适用于
return LatestProjectsResource::collection(...);,但主键名为data而不是items。在您的情况下是否必须将其命名为items? -
你找到解决办法了吗?
标签: php laravel vue.js laravel-5 eloquent