【问题标题】:Manual paginator on merged collection合并集合上的手动分页器
【发布时间】:2015-05-23 22:04:13
【问题描述】:

我有一个要分页的合并集合,但我似乎无法弄清楚。

首先,我需要手动创建分页器的原因是因为我先获取 2 个集合并合并它们,如下所示:

$a = ModelA::all();
$b = ModelB::all();

$c = $a->merge($b);

下一步是对这个集合进行分页,我尝试了 Paginator 和 LengthAwarePaginator

分页器

$page = 1;
$results = new Paginator($c, 2, $page);

在这里,我在分页器中获得了 2 个第一个结果

$page = 2;
$results = new Paginator($c, 2, $page);

我仍然得到前 2 个结果,而我希望得到第三个和第四个结果(集合的长度超过 2 个元素!)

LENGTHAWAREPAGINATOR

$page = 1;
$results = new LengthAwarePaginator($c, count($c), 2, $page);

在这里我得到一个分页器,但项目包含集合的所有元素,无论我要求什么页码(而不是我要求的 2)

关于可能是什么问题的任何想法? 提前谢谢你

【问题讨论】:

  • 我认为它是 Laravel 中的一个错误。我检查了 Illuminate\Pagination\Paginator 和 checkForMorePages() 函数对项目进行切片,总是从 0 开始,而不是从 ($this->currentPage()-1)*$this->perPage()

标签: laravel-5 paginator


【解决方案1】:

根据 Laravel 社区的说法,这是故意的。 您应该在将项目传递给 Paginator 之前对其进行切片。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 2018-05-10
    • 2019-10-29
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    相关资源
    最近更新 更多