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

时间:2015-02-04 04:33:44

标签: php laravel eloquent

在我的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();
}

2 个答案:

答案 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()。希望这可以帮助。