Thinkphp实现排序和置顶

【前言】

     后台需要添加排序和置顶操作,所以自己想了一个方案来实现。如有误解请指正

【主体】

(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)这时便可以在后台设置排序了,接下来在前台控制器里相应调整即可

<?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);
    }

}

.

猜你喜欢

转载自570109268.iteye.com/blog/2415909
今日推荐