首页 文章

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

提问于
浏览
0

在我的Laravel项目中,我正在进行数据库查询,在那里我搜索我的媒体表并获取属于user_id的所有结果 . 结果按大多数投票的顺序排序 . 但是,这会返回所有用户图像 . 我只想 grab 前4个结果,而不是全部 . 如何才能做到这一点?

我的媒体表看起来像这样 .

| id | user_id | url | votes |

我的控制器看起来像这样

public function getUserImagesByVote($user_id)
{

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

2 回答

  • 0

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

  • 2

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

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

    在您的情况下使用此查询

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

相关问题