如何仅从数据库查询中获取前 4 个结果


How do I grab only first 4 results from a DB query

在我的Laravel项目中,我正在执行一个数据库查询,我在其中搜索我的媒体表并获取属于user_id的所有结果。结果按大多数选票降序排列。但是,这将返回所有用户图像。我只想抓住前 4 个结果,而不是全部。如何做到这一点?

我的媒体表如下所示。

| id | user_id | url | votes |

我的控制器看起来像这样

public function getUserImagesByVote($user_id)
{
    return Media::where('user_id', $user_id)->orderBy('votes', 'DESC')->get();
}

如 laravel 文档中所述,您可以使用 take() 来限制结果并skip()偏移

偏移和限制

$users = DB::table('users')->skip(10)->take(5)->get();

在您的情况下使用此查询

Media::where('user_id', $user_id)->take(4)->orderBy('votes', 'DESC')->get()

你可以使用 take()。我相信"Media::where('user_id', $user_id)->orderBy('votes', 'DESC')->take(4)->get();"会有所帮助。你有 lavarvel 提供的 take() 和 skip()。希望这有帮助。