如何在Laravel中查询并展示数据表中票数最高的3条数据?
解决Laravel查询票数最高的3条数据问题
现有数据表
| id | names | voted |
|---|---|---|
| 1 | John | 100 |
| 2 | Mike | 25 |
| 3 | Kathy | 200 |
| 4 | William | 186 |
| 5 | Jasmine | 60 |
| 6 | Sui | 57 |
| 7 | Chris | 43 |
| 8 | Stewie | 103 |
| 9 | Steve | 150 |
| 10 | Jennifer | 97 |
当前代码问题
你写的votes::all()->max('voted')->get()存在逻辑错误:all()会直接取出所有数据,max('voted')只返回最高票数的数值,此时再调用get()会抛出错误,无法获取完整的记录信息。
正确实现代码
要获取票数最高的3条数据,只需按票数降序排序后取前3条:
public function votesList(){ $data = votes::orderByDesc('voted')->take(3)->get(); return view('list', compact('data')); }
代码说明
orderByDesc('voted'):将数据按voted字段从高到低排序take(3):筛选出排序后的前3条记录get():执行查询并返回包含完整记录的集合
执行后得到的结果
| id | names | voted |
|---|---|---|
| 3 | Kathy | 200 |
| 4 | William | 186 |
| 9 | Steve | 150 |
内容的提问来源于stack exchange,提问作者NeedHalp
相关产品推荐
相关产品推荐

