我正在开发一个API,对于索引路由,我返回分页,但是现在我应该使用雄辩的资源,但是这两个的分页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结构?
答案 0 :(得分:0)
您的UserCollection
类是什么样的?
乍一看,这是因为第一种方法AdminUserController@index
将响应转换为JSON,而第二种方法ClientUserController @index
返回了集合。