使用 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 进行分页的主要内容,如果未能解决你的问题,请参考以下文章

使用 Laravel 进行 AJAX 分页

使用 Vue.Js / Inertia.js 和 Laravel 对结果进行分页

我需要在 laravel 中使用 sortBy 进行分页

使用 Laravel API 进行滚动分页

如何使用 Laravel 和 jQuery 对查询结果进行分页

php 使用Laravel和jScroll进行无限滚动分页