如何格式化Laravel Eloquent资源响应?

时间:2019-07-23 09:23:28

标签: php laravel

我正在实现Laravel 5.8的 Eloquent API Resources
我遵循了文档中的所有说明:

这就是我得到的:

  

app / Http / Resources / TestResource.php

class TestResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
            "id" => $this->id,
            "title"=> $this->title
        ];
    }
}
  

输出:

{
    "id": 1,
    "title": "Test Title"
}  

我希望其格式如下:

{
    "data": [{
        "id": 1,
        "title": "Test Title"
    }]
}

有什么方法可以实现所需的输出?

1 个答案:

答案 0 :(得分:1)

您应该使用键data将资源作为数组的一部分返回。这样,您将获得一个资源位于该键下的对象。

在您的控制器中:

return [
    'data' => new TestResource($data)
];