我遇到的问题是我的id不是顺序的。 id 95之后的含义可能是101然后是103然后是123等。 因此,如果我只是在id上加10,我会得到105.问题1 - >不存在与105的id。问题2 - >我只跳了3个ids。
可能的解决方案:
$currentUser = User::find(95);
$nextUserID = User::where('id', '>', $currentUser->id)->min('id');
并使用此循环10x查找下一个项目时间10?
有更好的方法吗?
答案 0 :(得分:3)
如果您想从当前用户中跳过下10位用户,请使用skip()
方法:
User::where('id', '>=', 95)->skip(10)->first();
答案 1 :(得分:0)
您可以使用skip()
然后使用take()
,然后使用get()
或first()
来获取以下记录:
$nextUserID = User::where('id', '>', $currentUser->id)->skip(10)->first();
有了这个,您可以在10条记录后获得第一行。
您可以使用take()在划分10条记录后获取n条记录,如下所示:
$next_nrows = User::where('id', '>',$currentUser->id)->skip(10)->take(n)->get();
请参阅官方文档here
答案 2 :(得分:0)
如果你想要反向跳过10(比如回去10条记录),请使用以下内容:
User::where('id', '<=', 95)->orderBy('id', 'DESC')->skip(10)->first();