如何在Laravel中进行可分离的分页

时间:2018-03-26 14:25:35

标签: database laravel eloquent laravel-5.5 paginate

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

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

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

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

< - Previous --1--2--3 --...-- 10--11-- Next->

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

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

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

1 个答案:

答案 0 :(得分:0)

我不确定我是否理解你的问题,但是对我来说听起来像是在尝试每次每年年显示10个条目。您不需要自定义分页的工作方式。但您确实需要修改数据以使其适合现有行为。

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

  1. 每年独立查询。将所有这些分开。
  2. 确定最大的结果集,以了解为#34;最后一页提供的价值"链路
  3. 通过merge()方法
  4. 将它们合并到一个Collection中
  5. 创建LengthAwarePaginator的实例。发送至是您的合并结果,#2中标识的最高总数值,从GET变量派生的每页数量以及当前页码。默认情况下,当前页码将定义为GET变量page
  6. 将LengthAwarePaginator对象发送到您的View。让它按年分解结果,然后正常显示分页links()