API 资源分页的问题(万分感谢)
在写API时,使用了 resource 但遇到了一点小问题。
在http状态码基础上,我和前端约定了业务相关的状态码,当涉及到分页时使用 Resource::collection() 处理数据,这层业务状态码的包裹,会导致分页结果的消失。
包裹的那层类似这样:
response()->json([
'code' => 200,
'messsage' => 'success',
'data' => Resource::collection($data),
...
]);
我猜测是因为:
包裹嵌套资源
你可以完全自由地决定资源关联如何被包裹。如果你希望无论怎样嵌套,都将所有资源集合包裹在 data 键中,那么你需要为每个资源都定义一个资源集合类,并将返回的集合包裹在 data 键中。
当然,你可能会担心这样顶层资源将会被包裹在两个 data 键中。请放心, Laravel 将永远不会让你的资源被双层包裹,因此你不必担心被转换的资源集合会被多重嵌套。
但我暂时并没有想到如何去解决该问题。
可以试试