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>
效果: