📜  laravel 获取下一条和上一条记录 - PHP (1)

📅  最后修改于: 2023-12-03 14:43:49.376000             🧑  作者: Mango

Laravel 获取下一条和上一条记录 - PHP

在 Laravel 中,我们可以方便地获取下一条和上一条记录,而无需手动编写 SQL 语句。

拿到当前记录的方法为:$currentModel = Model::find($id);

获取下一条记录

我们可以使用 ->where 方法和 ->first 方法获取下一条记录。

$nextModel = Model::where('id', '>', $currentModel->id)->first();

在此示例中,我们可以从所有 id 大于当前记录 id 的记录中找到第一个。如果没有任何下一条记录,则 $nextModel 将是 null

获取上一条记录

我们同样可以使用 ->where 方法和 ->first 方法获取上一条记录。

$previousModel = Model::where('id', '<', $currentModel->id)->orderBy('id', 'desc')->first();

在此示例中,我们可以从所有 id 小于当前记录 id 的记录中找到 id 值最大的一条记录,即上一条记录。如果没有任何上一条记录,则 $previousModel 将是 null

完整示例
$currentModel = Model::find($id);

$nextModel = Model::where('id', '>', $currentModel->id)->first();
$previousModel = Model::where('id', '<', $currentModel->id)->orderBy('id', 'desc')->first();

if ($nextModel) {
    // 下一条记录存在
}

if ($previousModel) {
    // 上一条记录存在
}

以上便是在 Laravel 中获取下一条和上一条记录的方法。