5.8. 话题列表排序

话题排序

虽然我们已经有话题列表,不过目前只有一种排序逻辑,本章节中,我们将让话题列表支持『最后回复』和『最新发布』排序:

file

我们可以通过 URI 传参 order 给控制器,控制器根据此参数来决定数据的读取逻辑。因为『分类下的话题列表』也会用到排序,并且是在不同的控制器中,所以在此处为了复用性考虑,我们将会把排序逻辑代码放置于 Topic 数据模型中。作为一个合格的程序员,编码时需时刻注意代码复用性。

接下来的步骤是:

  • Topic 中编写排序逻辑;
  • TopicsController 控制器中调用;
  • CategoriesController 控制器中调用。

1. 编写排序逻辑

app/Models/Topic.php

本文章首发在 LearnKu.com 网站上。

为了保证课程的高品质,我们需要对课程进行收费。付费后 才能观看剩余内容。 购买

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
贡献者:1
讨论数量: 19

hustnzj
scopeWithOrder ($query, $order), $query 是怎么来的?
15 个点赞 | 2 个回复 | 分享 | 课程版本 5.5
bignose
总结要点:本地作用域的使用,数据排序
5 个点赞 | 3 个回复 | 分享 | 课程版本 5.5
keer
为什么从控制器调用 model 的时候 不能先调用 where 语句?
3 个点赞 | 13 个回复 | 问答 | 课程版本 5.5
焦糖大瓜子
接口请求特别慢,一个页面加载都要一两秒钟?
2 个点赞 | 7 个回复 | 问答 | 课程版本 5.5
Jhaihao
scopeWithOrder ($query, $order),$query 是什么东西来的??
2 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
月光
按照「创建时间」排序为什么要自己写?
1 个点赞 | 6 个回复 | 问答 | 课程版本 5.5
Morrow
排序333333
1 个点赞 | 1 个回复 | 分享 | 课程版本 5.5
followyounger
最新发布是乱序的?
0 个点赞 | 10 个回复 | 问答 | 课程版本 5.5
郎中航
最新和最后回复另外一种做法
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
tooyond
Topic:: 和 $topic-> 有区别么?
0 个点赞 | 4 个回复 | 问答 | 课程版本 5.5
Trenton
active_class 报错
0 个点赞 | 3 个回复 | 教程 | 课程版本 5.5
月光
为什么要传入参数 Topic $topic ?
0 个点赞 | 3 个回复 | 问答 | 课程版本 5.5
panta
列表排序后,点击分页就没有排序了
0 个点赞 | 2 个回复 | 分享 | 课程版本 5.8
道生一
$topics = $topic->withOrder($request->order)为什么只传了一个参数?
0 个点赞 | 1 个回复 | 问答 | 课程版本 7.x
李小明
使用 bootstap 选择 active 推荐
0 个点赞 | 1 个回复 | 问答 | 课程版本 6.x
royxu
话题列表排序加个搜索框功能, 如何支持 withOrder 的排序?
0 个点赞 | 1 个回复 | 问答 | 课程版本 5.8
任飘渺
关于分类的看法
0 个点赞 | 0 个回复 | 分享 | 课程版本 5.5