Laravel,如何将集合对象转换为构建器对象

Kha*_*man 5 collections builder laravel

我需要在集合上使用 paginate 和 simplepaginate,所以我试图将集合转换为构建器对象。为此,我正在考虑创建一个函数,该函数获取集合中每个项目的 id,然后用它构建一个查询,但在我看来,这似乎占用了很多资源,有没有更简单的方法?

Ale*_*nin 2

更好的方法是使用现有集合手动构建分页器对象。

来自文档

有时您可能希望手动创建分页实例,并向其传递一个项目数组。您可以根据需要通过创建Illuminate\Pagination\Paginator或 实例来实现此目的。Illuminate\Pagination\LengthAwarePaginator

该类Paginator不需要知道结果集中的项目总数;但是,正因为如此,该类没有用于检索最后一页索引的方法。接受LengthAwarePaginator与 几乎相同的参数Paginator;但是,它确实需要计算结果集中的项目总数。

换句话说,Paginator对应于simplePaginate查询构建器和 Eloquent 上的方法,而LengthAwarePaginator对应于 paginate 方法。