在 Laravel 9 中,使用 API 资源集合,禁用单个接口的最外层资源的包裹 data 键
1、最初的响应结构如下:如图1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | { "data": [ { "id": 1, "return_order_id": 61, "return_order_item_id": 86 }, { "id": 2, "return_order_id": 61, "return_order_item_id": 86 } ] } |
2、由于不需要分页,前端希望去掉最外层资源的包裹 data 键,设置「数据」包装器 为 null。修改资源集合类如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | class ReturnOrderItemReceiptRecordResourceCollection extends ResourceCollection { /** * 应该应用的「数据」包装器。 * * @var string */ public static $wrap = null; /** * Transform the resource into an array. * * @param Request $request * @return array */ public function toArray( $request ): array { return parent::toArray( $request ); } } |
3、结果符合预期,接口响应一个数组。如图2
1 2 3 4 5 6 7 8 9 10 11 12 | [ { "id": 1, "return_order_id": 61, "return_order_item_id": 86 }, { "id": 2, "return_order_id": 61, "return_order_item_id": 86 } ] |
近期评论