【问题标题】:How to create custom pagination on API returned results in laravel 5.2?如何在 laravel 5.2 中对 API 返回的结果创建自定义分页?
【发布时间】:2016-11-03 10:41:47
【问题描述】:

我知道如何在 laravel 视图中从数据库返回的记录中创建分页,但需要从 API 返回的结果中创建相同的。

我有一个有 500 000 条记录的 api。但它一次最多只能返回 500 条记录。我可以在单个 api 调用中将该值设置为低于 500 但不超过该值。我也有 api 返回的总记录。

我想创建一个每页包含 50 个结果的分页。任何人都可以使用刀片模板或 jquery 在 laravel 5.2 中提供此代码。

Api 调用返回:

找到的总结果 - 456 789

返回的总记录 - 500 或更少

Array
(
    [response] => Array
        (
            [metaData] => Array
                (
                    [resultsAvailable] => 228246
                    [resultsReturned] => 500
                    [firstResult] => 1
                    [lastResult] => 500

                    )                

        [results] => Array
            (
                [0] => Array
                    (
                        [0] => 100000
                        [1] => 1
                        [2] => 14327
                        [3] => 5
                        [4] => 3
                        [5] => 2014-02-18T07:40:23.000Z
                        [6] => 4
                        [7] => 390770731738-385691128026
                        [8] => 1
                        [9] => 2014-02-20T20:51:56.000Z
                        [10] => 0
                    )

                [1] => Array
                    (
                        [0] => 100001
                        [1] => 1
                        [2] => 14328
                        [3] => 5
                        [4] => 3
                        [5] => 2014-02-18T08:20:56.000Z
                        [6] => 4
                        [7] => 026-2336690-3199543
                        [8] => 1
                        [9] => 2014-02-20T20:51:55.000Z
                        [10] => 0
                    )
.......



                [499] => Array
                    (
                        [0] => 100511
                        [1] => 1
                        [2] => 14688
                        [3] => 5
                        [4] => 3
                        [5] => 2014-02-20T19:35:00.000Z
                        [6] => 4
                        [7] => 205-0866154-3716348
                        [8] => 1
                        [9] => 2014-02-20T20:46:45.000Z
                        [10] => 0
                    )

            )

    )

【问题讨论】:

  • 请提供您的代码。控制器和相应的视图将是一个好的开始。
  • SEe my answer here 详细解释了如何对任何数组进行分页。
  • @Ohgodwhy not what I am looking for.
  • @LaravelUser 你能解释一下为什么这不是你要找的吗?它使您能够对任何内容进行分页。我错过了什么?
  • @Ohgodwhy 我没有一次收集所有结果。 api 一次调用只返回 500 或更少的结果。

标签: php jquery laravel pagination laravel-5.2


【解决方案1】:

你需要添加使用:

use Illuminate\Pagination\LengthAwarePaginator as Paginator;

现在你可以使用了:

$paginator = new Paginator($items, $count, $limit, $page, [
            'path'  => $this->request->url(),
            'query' => $this->request->query(),
        ]);

获取与模型对象分页格式相同的数据;

【讨论】:

  • 我必须修改它以适应我的使用,但我得到了 LengthAwarePaginator 的想法
  • 我也使用相同的。但我只得到部分 URL,例如 /page=2。使用 paginate() 时,我得到了完整的 URL。我也没有得到以前的网址。
  • 您以 $items 形式发送什么?它只有 500 条记录吗?
猜你喜欢
  • 2017-02-28
  • 2016-07-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-04
  • 2018-09-12
  • 2019-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多