laravel分页数据如何格式化?

发布于 2022-09-11 16:58:48 字数 722 浏览 21 评论 0

如果用框架中的paginate()方法进行分页,那么数据外层会多包上一层分页数据,例如:

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

如何将分页数据独立开来显示?例如:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

陈甜 2022-09-18 16:58:48

我是自己包装了一下,简化一下输出,如下面:

function paginate($pagination) {
   return [
        'status' => true,
        'message' => '',
        'data' => [
            'items' => $pagination->items(),
            'next' => $pagination->hasMorePages() ? $pagination->currentPage() + 1 : null,
            'total' => $pagination->total(),
        ],
    ];
}
做个ˇ局外人 2022-09-18 16:58:48
// 获取包裹的 data
$data = $list->getCollection();
dump($data);

// 将包裹的 data 置空
$list->setCollection(collect());
dump($list);

虽然以上代码能够实现你想要的,但是我并不推荐你这样做。

∝单色的世界 2022-09-18 16:58:48

遍历paginate返回的数据,把需求的数据单独放到data数组里,分页数据可以

[
'total' => $favorites->total(),
'per_page' => $favorites->perPage(),
'current_page' => $favorites->currentPage(),
'last_page' => $favorites->lastPage()
]

取到

情仇皆在手 2022-09-18 16:58:48

返回客户端之前把laravel的返回值手动处理一遍,但是这个过程不太【优雅】,看看能不能和前端沟通一下,解决一下你的需求?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文