【问题标题】:Laravel 5.8 pagination without Eloquent没有 Eloquent 的 Laravel 5.8 分页
【发布时间】:2019-10-29 11:23:02
【问题描述】:

我需要自定义分页,但就我而言,我不使用 eloquent 来获取数据。我使用 API 来获取数据。

我一直在处理 Pagination 类,但据我所知,它需要一个集合并对其进行分页。这不是我需要的。

我需要的是根据搜索查询获得的记录子集创建分页对象。假设这样的查询总共有 10000 条记录,而我只得到一个包含 50 个项目的数组,所以每个分页有 50 个元素。所以,我需要根据这些信息创建分页链接。

有什么方法可以实现吗?

编辑

$models = array('total'          => $n_results,
                'per_page'      => 30,
                'current_page'  => 1,
                'last_page'     => ceil($n_results/30),
                'next_page'     => "******",
                'prev_page'     => "******",
                'from'          => 1,
                'to'            => 30,
                'data'          => $items);

【问题讨论】:

  • 只是检查:您不能让 API 生成分页结果,对吧?就像,在 API 方面,使用资源并将所有内容包装在 {"data": [...],"links": {"first":...,"last":...,"prev":...,"next":...},"meta": {...}} 之类的东西中不是一种选择,不是吗?
  • @victorf 我可以创建这样的对象,但是在 Blade 中插入分页时,它不起作用。
  • 但是这个对象的结构和我提到的一样吗?
  • @victorf 看看我创建的对象。与使用 Eloquent 的分页创建的相同。
  • @victorf 最后我制作了自己的分页脚本。

标签: laravel pagination


【解决方案1】:

根据我在这里的理解,我会做什么:

1- 如果您不能询问 API 的每次调用的限制和偏移量,并且 API 会立即向您提供所有结果,但您想一次显示 50 个,那么我将创建一个 temp_table 并插入数据到它,然后它就像它在我自己的数据库中,然后我就可以自己排序,限制和偏移。

2- 如果总结果不是那么多(比如少于 500 个),并且您希望用户不会被所有结果一起淹没,并且您想一次向他们展示 50 个结果或一次显示 20 个结果您可以通过隐藏元素将所有结果加载到刀片中。 (这不是我推荐的,但如果你不想要 temp_table,它会起作用)

【讨论】:

  • 你还没有理解这个问题。请仔细阅读帖子和 cmets,并意识到 API 不提供所有记录,其他 50 个项目的子集。
猜你喜欢
  • 2020-02-16
  • 1970-01-01
  • 2020-01-31
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
  • 2020-04-13
  • 2020-04-26
  • 1970-01-01
相关资源
最近更新 更多