【问题标题】:How to make Separable Pagination in Laravel如何在 Laravel 中进行可分离分页
【发布时间】:2018-09-04 17:41:04
【问题描述】:

我需要分开分页。我的价值观变得如此混乱。首先看表。 我的看法应该是这样的。

|---2015-----2016-----2017-----2018-|

|-----X---------X---------X---------X----|

|-----X---------X---------X---------X----|

当我单击随机年份时,所有值都会出现,但最多只能显示十张图像,然后必须使用分页按钮加载另外十张图像。

但有一个问题,所有数据都来自 2015-2016 年。如果我用 created_at、desc 或 smt 更改查询,所有数据都来自 2018 年。

我需要平衡解决方案,有没有办法获得全年 10 个数据?

【问题讨论】:

  • 你可能应该为此提供一些代码......不幸的是,没有它有点模糊。
  • 谢谢。先生有什么想法吗?任何意见对我都有好处。我被困住了。不是代码。意见、想法等......
  • 我的想法/意见是您需要将代码添加到问题中。没有它,我们将无能为力。
  • 但我现在不能。 Paginate(number) 是 laravel 中的现有查询。它做所有的工作。我的问题是关于自定义分页查询。就像我说的。我只需要一个提示。

标签: database laravel eloquent laravel-5.5 pagination


【解决方案1】:

我不确定我是否完全正确地理解了您的问题,但在我看来,您正试图在显示的 每一 年中一次显示 10 个条目。您无需自定义分页的工作方式。但是您确实需要修改您的数据以使其适合现有行为。

您可能不需要执行以下所有操作。但要涵盖所有基础 - 假设您想要一个能够在视图中调用 links() 方法的模型的 EloquentCollection,以下是手动构建复合结果对象的方法

  1. 每年独立查询。将它们全部分页。
  2. 确定最大的结果集,以了解为“最后一页”链接呈现什么值
  3. 通过merge() 方法将它们合并到一个集合中
  4. 创建一个 LengthAwarePaginator 实例。发送到是您的合并结果、#2 中确定的最高总数的值、从您的 GET 变量派生的每页数以及当前页码。默认情况下,当前页码将被定义为 GET 变量page
  5. 将该 LengthAwarePaginator 对象发送到您的视图。让它按年份分解结果,并正常呈现分页links()

【讨论】:

  • 顺便说一句,我建议不要查询created_atupdated_at 字段。出于调试/历史原因,这些在很大程度上只是为了反映数据库条目的创建时间。如果您假设条目的创建日期必然反映了该数据应该代表的内容,那么您可能会遇到一些麻烦。
猜你喜欢
  • 2014-05-08
  • 2021-09-27
  • 2020-03-07
  • 2019-10-02
  • 2013-08-24
  • 1970-01-01
  • 2014-01-13
  • 1970-01-01
  • 2015-09-30
相关资源
最近更新 更多