Laravel API 资源 – 永夜 https://www.shuijingwanwq.com 没有不值得去解决的问题,也没有不值得去学习的技术! Sat, 13 Jul 2024 02:14:06 +0000 zh-Hans hourly 1 https://wordpress.org/?v=7.0 在 Laravel 9 中,使用 API 资源集合,禁用单个接口的最外层资源的包裹 data 键 https://www.shuijingwanwq.com/2024/07/13/8714/ https://www.shuijingwanwq.com/2024/07/13/8714/#respond Sat, 13 Jul 2024 02:13:41 +0000 https://www.shuijingwanwq.com/?p=8714 Post Views: 72 1、最初的响应结构如下:如图1  
接口的最外层资源的包裹 data 键

图1



{
    "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。修改资源集合类如下


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
结果符合预期,接口响应一个数组

图2



[
    {
        "id": 1,
        "return_order_id": 61,
        "return_order_item_id": 86
    },
    {
        "id": 2,
        "return_order_id": 61,
        "return_order_item_id": 86
    }
]


]]>
https://www.shuijingwanwq.com/2024/07/13/8714/feed/ 0