使用 ORM 里的 API 资源的时候,怎么在返回的字段中添加状态码及错误信息?

大家好,突然遇到了一个问题,因为Laravel6.x的api资源比较完善了,所以今天就试了一下,当查询不包含分页信息的时候,显示是这样的

{
    "data": [
        {
            "id": 1,
            "title": "戒指",
            "created_at": "2019-11-10 13:41:13",
            "updated_at": "2019-11-10 13:41:13"
        },
        {
            "id": 2,
            "title": "雨伞",
            "created_at": "2019-11-10 18:47:04",
            "updated_at": "2019-11-10 18:47:04"
        },
        {
            "id": 3,
            "title": "枕头",
            "created_at": "2019-11-10 18:47:13",
            "updated_at": "2019-11-10 18:47:13"
        },
        {
            "id": 4,
            "title": "棉被",
            "created_at": "2019-11-10 18:47:29",
            "updated_at": "2019-11-10 18:47:29"
        }
    ],

当包含分页信息的时候,是这样的:

{
    "data": [
        {
            "id": 1,
            "title": "戒指",
            "created_at": "2019-11-10 13:41:13",
            "updated_at": "2019-11-10 13:41:13"
        },
        {
            "id": 2,
            "title": "雨伞",
            "created_at": "2019-11-10 18:47:04",
            "updated_at": "2019-11-10 18:47:04"
        },
        {
            "id": 3,
            "title": "枕头",
            "created_at": "2019-11-10 18:47:13",
            "updated_at": "2019-11-10 18:47:13"
        },
        {
            "id": 4,
            "title": "棉被",
            "created_at": "2019-11-10 18:47:29",
            "updated_at": "2019-11-10 18:47:29"
        }
    ],
    "links": {
        "first": "http://pass.test/api/v1/product_sorts?page=1",
        "last": "http://pass.test/api/v1/product_sorts?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "path": "http://pass.test/api/v1/product_sorts",
        "per_page": 15,
        "to": 4,
        "total": 4
    }
}

个人感觉不错,但是不管哪种都没有返回状态码以及错误提示信息,或者也可以说访问成功时返回的200状态码以及提示信息,我想把它添加进去,该怎么办?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

类似这样

return (new UserCollection(User::all()->load('roles')))
                ->additional(['meta' => [
                    'code' => 200,
                    'message' => 'success'
                ]]);
4年前 评论
讨论数量: 4

类似这样

return (new UserCollection(User::all()->load('roles')))
                ->additional(['meta' => [
                    'code' => 200,
                    'message' => 'success'
                ]]);
4年前 评论

建议统一封装返回状态码和提示消息,再将API资源加到封装结构中去

4年前 评论

respond的middleware统一处理

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!