【问题标题】:Why JSON structure of default pagination response and eloquent pagination resource are different?为什么默认分页响应和 eloquent 分页资源的 JSON 结构不同?
【发布时间】:2019-02-18 07:12:45
【问题描述】:

我正在开发一个 API,对于索引路由,我返回分页但现在我应该使用 eloquent 资源,但这两者的分页 JSON 结构不同,前端代码不再工作。

我的代码是:

// AdminUserController.php
public function index()
{
    return User::paginate();
}

// ClientUserController.php
public function index()
{
     return new UserCollection(User::paginate());
}

第一个 JSON 结构,如:

{
  "total": 50,
  "per_page": 15,
  "current_page": 1,
  "last_page": 4,
  "next_page_url": "http://my.app/api/admin/users?page=2",
  "prev_page_url": null,
  "from": 1,
  "to": 15,
  "data": [
    {
      // Result Object
    },
    {
      // Result Object
    }
  ]
}

但第二个是这样的:

{
    "data": [
        {
            // Result Object
        },
        {
            // Result Object
        }
    ],
    "links":{
        "first": "http://my.app/api/app/users?page=1",
        "last": "http://my.app/api/app/users?page=2",
        "prev": null,
        "next": null
    },
    "meta":{
        "current_page": 1,
        "from": 1,
        "last_page": 2,
        "path": "http://my.app/api/admin/users",
        "per_page": 15,
        "to": 15,
        "total": 25
    }
}

为什么 laravel 分页响应具有不同的 JSON 结构?

【问题讨论】:

    标签: laravel laravel-5


    【解决方案1】:

    你的UserCollection 班级是什么样的?

    乍一看,这是因为第一个方法AdminUserController@index将响应转换为JSON,而第二个方法ClientUserController @index返回一个集合。

    【讨论】:

      猜你喜欢
      • 2015-11-01
      • 1970-01-01
      • 2010-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      相关资源
      最近更新 更多