您现在的位置是:首页 > ThinkPHP

ThinkPHP5.1获取上一篇和下一篇方法

李清波 2019-04-05 ThinkPHP

ThinkPHP5.1获取上一篇和下一篇方法


在模型创建静态方法

//获取同分类下的上一篇文章
public static function getPrev($info=[]){
    $map[] = ['id','gt',$info['id']];
    $map[] = ['category_id','eq',$info['category_id']];

    $info = self::where($map)->order('id ASC')->find();
    if($info){
        $href = url_news_show($info['id']);;
        $a = '<a href="'.$href.'">'.$info['title'].'</a>';
    }else{
        $a = '没有了';
    }
    return $a;
}

//获取同分类下的下一篇文章
public static function getNext($info=[]){
    $map[] = ['id','lt',$info['id']];
    $map[] = ['category_id','eq',$info['category_id']];

    $info = self::where($map)->order('id DESC')->find();
    if($info){
        $href = url_news_show($info['id']);;
        $a = '<a href="'.$href.'">'.$info['title'].'</a>';
    }else{
        $a = '没有了';
    }
    return $a;
}


在详细页调用并赋值

$prev = NewsModel::getPrev($info);
$next = NewsModel::getNext($info);
$this->assign('prev',$prev);
$this->assign('next',$next);

注:上面是静态方法调用,需要先使用命名空间加载类use app\admin\model\NewsModel;


html视图模版代码

<div class="nextinfo">
    <p>上一篇:{$prev|raw}</p>
    <p>下一篇:{$next|raw}</p>
</div>


效果:

blob.png

评论