如何在一张表中向前/向后跳转10条记录(Laravel)?
我的问题是我的id不是连续的。意思是在ID95之后可能是101,然后是103,然后是123等等。 因此,如果我在id上加10,我会得到105。问题1->105的id不存在。问题2->我只跳了3个ID 可能的解决办法:如何在一张表中向前/向后跳转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 有更好的方法吗?如
$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'),'