Laravel next / previous查询条件和循环

时间:2017-09-29 19:37:34

标签: php mysql sql laravel

在我的网站上,用户可以上传图片。图像有自己的页面。

$user = User::where('username', $username)->first();
$image = Images::where('url_title', $URLtitle)->where('created_by', $user->id)->first();

在这些页面上,我想要一个前一个/下一个按钮,该按钮会转到用户的下一个/上一个图像。但是,我希望这些也循环。

例如,假设用户上传了3张图片。 ID为33,55和61的图像。

如果您在图像55上,则前一图像为33,下一图像为61.

但是,如果您在图像61上,则下一个图像将循环到33。

我如何创建一个允许我创建这些链接的查询?

1 个答案:

答案 0 :(得分:1)

如果你不介意运行一些额外的查询,你可以这样做:

$query = Images::where('url_title', $URLtitle)->where('created_by', $user->id);
$image = $query->first();
$prevImage = $query->where('id', '<', $image->id)->orderBy('id', 'desc')->first();
$nextImage = $query->where('id', '>', $image->id)->orderBy('id', 'asc')->first();

这应该会为您提供所选图像两侧最近的图像。