在我的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();
}
答案 0 :(得分:2)
正如laravel docs中所述,您可以使用take()
来限制结果,并使用skip()
来抵消
抵消&限制
$ users = DB :: table(' users') - > skip(10) - > take(5) - > get();
在您的情况下使用此查询
Media::where('user_id', $user_id)->take(4)->orderBy('votes', 'DESC')->get()
答案 1 :(得分:0)
你可以使用take()。我相信" Media :: where(' user_id',$ user_id) - > orderBy('投票',' DESC') - > take (4) - >得到();"会有所帮助。你有lavarvel提供的take()和skip()。希望这可以帮助。