在我的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 回答
你可以使用take() . 我相信“Media :: where('user_id',$ user_id) - > orderBy('votes','DESC') - > take(4) - > get();”会有所帮助 . 你有lavarvel提供的take()和skip() . 希望这可以帮助 .
如laravel docs中所述,您可以使用
take()
来限制结果,使用skip()
来偏移在您的情况下使用此查询