合并集合的手动分页器
Manual paginator on merged collection
我有一个合并的集合,我想对其进行分页,但我似乎无法解决这个问题。
首先,我需要手动创建分页器的原因是我首先获取 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 社区,这是故意的。
在将项目传递给分页器之前,您应该对其进行切片。
我有一个合并的集合,我想对其进行分页,但我似乎无法解决这个问题。
首先,我需要手动创建分页器的原因是我首先获取 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 社区,这是故意的。 在将项目传递给分页器之前,您应该对其进行切片。