问一下大家,laravel怎么在api接口输出的时候多包一层data?谢谢~
大家好!我现在输出的 json 格式是这样子的
{
"total": 0,
"pages": 0,
"size": 0,
"page": 1,
"data": [
{
"id": "6",
"created_at": "2021-09-04T17:34:05.000Z",
"updated_at": "2022-02-25T09:48:41.000Z",
"title": "启动界面视频广告",
"icon": "assets/splash_ad.mp4",
"uri": "/courses",
"style": 10,
"position": 10,
"sort": 1000,
"user_id": "1417780635407372289"
},
{
"id": "5",
"created_at": "2021-09-04T17:34:05.000Z",
"updated_at": "2022-02-25T09:48:41.000Z",
"title": "启动界面图片广告",
"icon": "assets/splash_ad.png",
"uri": "/books",
"style": 0,
"position": 10,
"sort": 900,
"user_id": "1417780635407372289"
}
]
}
代码如下,
控制器代码
public function getBraceCaseCommentList($case_id)
{
$brace_case_comments = BraceCaseComment::where('case_id', $case_id)->orderBy('id', 'desc')->paginate(10);
return ResourcesBraceCaseComment::collection($brace_case_comments);
}
资源包裹代码
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class PreHomeDoing extends JsonResource
{
/**
* Transform the resource collection into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
$data = parent::toArray($request);
$data['image_url'] = optional($this->pre_home_doing_image)->url;
$data['nickname'] = $this->yt_user->nickname;
$data['headimgurl'] = $this->yt_user->headimgurl;
return $data;
}
}
但是公司和前端都要求加一层 data,
json 格式如下:
{
"data": {
"total": 0,
"pages": 0,
"size": 0,
"page": 1,
"data": [
{
"id": "6",
"created_at": "2021-09-04T17:34:05.000Z",
"updated_at": "2022-02-25T09:48:41.000Z",
"title": "启动界面视频广告",
"icon": "assets/splash_ad.mp4",
"uri": "/courses",
"style": 10,
"position": 10,
"sort": 1000,
"user_id": "1417780635407372289"
},
{
"id": "5",
"created_at": "2021-09-04T17:34:05.000Z",
"updated_at": "2022-02-25T09:48:41.000Z",
"title": "启动界面图片广告",
"icon": "assets/splash_ad.png",
"uri": "/books",
"style": 0,
"position": 10,
"sort": 900,
"user_id": "1417780635407372289"
}
]
},
"status": 0
}
请问一下大家,外边的这层 data, 怎么加上去的?谢谢祝大家新年快乐
推荐文章: