使用 Laravel 进行分页
Posted
技术标签:
【中文标题】使用 Laravel 进行分页【英文标题】:Pagination with Laravel 【发布时间】:2014-09-01 03:19:48 【问题描述】:我正在使用 Laravel 和 Ajax 的无限滚动分页系统。它的工作原理是:
我加载前 10 个结果,只需使用Book::orderBy('created_at')->paginate(5);
然后,我通过 Ajax 调用另一个函数,该函数必须返回接下来的 5 个值。但我不想要前 5 个值,只想要 5 个新值。
所以,我正在寻找类似的东西:
$shown=10;
$showPerPage=5;
//The function that I am looking for
Book::orderBy('created_at')->paginateFrom(10,5)
这将加载数字 10 之后的五本书。我见过Paginator::make()
,但我有两个问题:首先,它需要所有现有值,所以我必须向数据库询问每个结果,即效率不高,其次,我无法将数组传递给该函数,因为当您使用 ->get()
时,Laravel 会返回一个对象。
知道我该怎么做吗?
【问题讨论】:
可能是这样的:Book::orderBy('created_at')->skip(5)->take(5)->get() ? 哇,我想它很完美。 好的,那么请告诉我,我已将其编辑为答案。 【参考方案1】:我认为这可以解决:
$shown=10;
$showPerPage=5;
Book::orderBy('created_at')->skip($shown)->take($showPerPage)->get();
基本上skip
方法加了OFFSET
子句,take
加了LIMIT
一个。
来源: http://laravel.com/docs/queries
【讨论】:
以上是关于使用 Laravel 进行分页的主要内容,如果未能解决你的问题,请参考以下文章
使用 Vue.Js / Inertia.js 和 Laravel 对结果进行分页