首页 > 解决方案 > Laravel:分页()的结果在页面之间是不稳定的

问题描述

我对分页结果有如下问题:

要求 :

GET http://localhost:1000/api/v1/public/blog/articles

回复 :

{
    "current_page": 1,
    "data": [
        {
            "article_id": 43
        },
        {
            "article_id": 107
        },
        {
            "article_id": 171
        },
        {
            "article_id": 22
        },
        {
            "article_id": 86
        },
        {
            "article_id": 150
        },
        {
            "article_id": 1
        },
        {
            "article_id": 65
        },
        {
            "article_id": 129
        },
        {
            "article_id": 44
        }
    ],
    "first_page_url": "http://localhost:1000/api/v1/public/blog/articles?page=1",
    "from": 1,
    "last_page": 18,
    "last_page_url": "http://localhost:1000/api/v1/public/blog/articles?page=18",
    "next_page_url": "http://localhost:1000/api/v1/public/blog/articles?page=2",
    "path": "http://localhost:1000/api/v1/public/blog/articles",
    "per_page": "10",
    "prev_page_url": null,
    "to": 10,
    "total": 179
}

所以,现在如果我在同一个链接中再次请求,它会显示一组具有不同 ID 的不同文章。此外,如果我转到 page=1 或 page=2,则每一页的结果都是不稳定的。

我不确定这个问题是从哪里发生的,我想提一下,我的其他分页查询工作正常,除非我尝试连接查询以获得特定结果,如下所示:

$query = DB::query();

// Then Concatenating other queries based on options

// Now Execute The Whole Query
$fetched_articles = $query->paginate(5);

如果有人可以在此处使用解决方案或解决方法描述分页器流程,那将会很有帮助。

提前致谢 !

标签: laravellumenlaravel-query-builderpaginatorlaravel-pagination

解决方案


根据 Laravel 文档

目前,Laravel 无法高效执行使用 groupBy 语句的分页操作。如果您需要使用带有分页结果集的 groupBy,建议您查询数据库并手动创建分页器。

groupBy所以,如果你想分页,你不能在你的查询中使用。

顺便说一句,你可以试试这篇文,也许它对你有用。


推荐阅读