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