如何在一张表中向前/向后跳转10条记录(Laravel)?

如何在一张表中向前/向后跳转10条记录(Laravel)?,laravel,eloquent,Laravel,Eloquent,我的问题是我的id不是连续的。意思是在ID95之后可能是101,然后是103,然后是123等等。 因此,如果我在id上加10,我会得到105。问题1->105的id不存在。问题2->我只跳了3个ID 可能的解决办法: $currentUser = User::find(95); $nextUserID = User::where('id', '>', $currentUser->id)->min('id'); 然后循环10次,用这个来找到下一个项目乘以10 有更好的方法吗?如

我的问题是我的id不是连续的。意思是在ID95之后可能是101,然后是103,然后是123等等。 因此,如果我在id上加10,我会得到105。问题1->105的id不存在。问题2->我只跳了3个ID

可能的解决办法:

$currentUser = User::find(95);
$nextUserID = User::where('id', '>', $currentUser->id)->min('id');
然后循环10次,用这个来找到下一个项目乘以10


有更好的方法吗?

如果要从当前用户中跳过接下来的10个用户,请使用以下方法:

您可以使用
skip()
,然后使用
take()
,然后使用
get()
first()
来获取如下记录:

$nextUserID = User::where('id', '>', $currentUser->id)->skip(10)->first();
$next_nrows = User::where('id', '>',$currentUser->id)->skip(10)->take(n)->get();
有了这个,你可以得到10条记录后的第一行

跳过10条记录后,可以使用take()获取n条记录,如下所示:

$nextUserID = User::where('id', '>', $currentUser->id)->skip(10)->first();
$next_nrows = User::where('id', '>',$currentUser->id)->skip(10)->take(n)->get();

请参阅官方文档

如果您想要跳过10条记录的相反方式(比如返回10条记录),请使用以下方法:

User::where('id', '<=', 95)->orderBy('id', 'DESC')->skip(10)->first();

User::where('id',你试过分块吗?很好,很干净:)@Alexey Menzenin还有一种方法可以返回10条记录。斯基普正朝着我想象的方向前进!Thanx.@stepbystep当然,就像这样做
User::where('id'),@AlexeyMezenin我已经测试了
User::where('id'),'