美文网首页工作生活
解决laravel api resource 分页返回统一格式

解决laravel api resource 分页返回统一格式

作者: 北叔爱学习 | 来源:发表于2019-07-03 14:40 被阅读0次

看了https://learnku.com/articles/6035/laravel55-developing-api-combat
大神文章后 自己项目中一直在用。所以在此感激作者。
但是有一个问题 就是分页返回格式 不统一。 没有status 和code信息。

解决方案:当然是在resource里 添加分页信息

public function list(RecruitGroup $recruitGroup){
        $res = $recruitGroup->getListCollection(Auth::user()->user_id,2);
        return $this->success(new ListPageCollection($res));
    }
public function getListCollection($creatorId,$pageNum)
    {
        return $this->select(
            'id','pro_name','position_name','number','salary','salary_unit','islong',
            'job_begdate','job_enddate','work_time','outwork_time')
            ->where('creator_id',$creatorId)->orderBy('created_at','desc')
        ->simplePaginate($pageNum);    
    }
  /**
     * Transform the resource collection into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
            'data' => $this->collection->map(function($recuiteGroup){
                return [
                    'salary_unit' => $this->salaryUnit($recuiteGroup->salary_unit),
                ];
            }),
            'next_page_url' => $this->nextPageUrl(),//注意这里不是$this->new_page_url
        ];
    }

下面来看下结果

{
    "status": "success",
    "code": 200,
    "data": {
        "data": [
            {
                "salary_unit": "小时"
            },
            {
                "salary_unit": "月"
            }
        ],
        "next_page_url": "http://127.0.0.1:8089/api/v1/recruit/group/list?page=4"
    }
}

相关文章

网友评论

    本文标题:解决laravel api resource 分页返回统一格式

    本文链接:https://www.haomeiwen.com/subject/kciqhctx.html