Laravel 8 包裹嵌套资源
你可以完全自由地决定资源关联如何被包裹。如果你希望无论怎样嵌套,都将所有资源集合包裹在 data
键中,那么你需要为每个资源都定义一个资源集合类,并将返回的集合包裹在 data
键中。
当然,你可能会担心这样顶层资源将会被包裹在两个 data
键中。请放心,Laravel 将永远不会让你的资源被双层包裹,因此你不必担心被转换的资源集合会被多重嵌套:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class CommentsCollection extends ResourceCollection
{
/**
* 将资源集合转换成数组
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return ['data' => $this->collection];
}
}