【前言】
后台需要添加排序和置顶操作,所以自己想了一个方案来实现。如有误解请指正
【主体】
(1)排序操作思路
一般来说都是按照发布时间排序。时间戳大的靠前,所以用倒序desc,而不是asc
$model->order('addtime desc')->select();
(2)置顶操作思路:
点击置顶时,修改数据库addtime字段值为当前时间即可。因为排序是按照时间戳排列的
<a href="__CONTROLLER__/sort/id/{$vol.id}">置顶</a> public function sort(){ $model = D('cate'); $id = I('get.id');//获取点击数据id $addtime = time();//当前时间戳 $cate->where('id='.$id)->setField('addtime',$addtime);//更新数据库时间戳 }
(3)这时便可以在后台设置排序了,接下来在前台控制器里相应调整即可
扫描二维码关注公众号,回复:
207336 查看本文章
<?php //公共控制器 namespace Home\Controller; use Think\Controller; class CommonController extends Controller { public function __construct(){ parent::__construct(); //以下为公共部分自动调用 $this->nav(); $this->link(); $this->news(); } //顶部导航 public function nav(){ $cate = D('cate'); $data = $cate->order('addtime desc')->select(); $this->assign('data',$data); } //链接 public function link(){ $link = D('link'); $linkdata = $link->order('addtime desc')->select(); $this->assign('linkdata',$linkdata); } //最近发表,按照时间戳排序列出几个即可 public function news(){ $link = D('article'); $newsdata = $link->order('addtime desc')->limit(10)->select(); // dump($newsdata); $this->assign('newsdata',$newsdata); } }
.