tp5实现新闻详情页的上下篇方法
由于tp5没有提供新闻动态的上下篇方法,网上的上下篇方法也是通过id的加1减1来查询上下篇的,但是当数据库的id有缺失时,就会报错,所有我自己封装了一个上下篇的方法,希望能帮到大家
代码如下:
//上下篇方法,需传入当前文章id
public function fy($id){
//查询所有文章id
$fy=Db('article')->field('id')->order('time desc')->select();
//遍历获取上一篇id和下一篇id
foreach($fy as $k=>$v){
if($v['id']==$id){
$k_last=$k-1;//上一篇id
$k_next=$k+1;//下一篇id
//判断上一篇id是否存在
if(array_key_exists($k_last,$fy)){
$last=$fy[$k-1]['id'];
}else{
$last=null;
}
//判断下一篇id是否存在
if(array_key_exists($k_next,$fy)){
$next=$fy[$k+1]['id'];
}else{
$next=null;
}
}
}
//判断上下片是否存在,并获取展现的数据
if($last==null&&$next==null){
$arr['last']=null;
$arr['next']=null;
}else if($last==null&&$next!=null){
$arr['last']=null;
$arr['next']=Db('article')->where('id',$next)->field('id,title')->find();
}else if($last!=null&&$next==null){
$arr['last']=Db('article')->where('id',$last)->field('id,title')->find();
$arr['next']=null;
}else{
$select=DB('article')->where('id',$last)->whereOr('id',$next)->field('id,title')->order('time desc')->select();
$arr['last']=$select[0];
$arr['next']=$select[1];
}
return $arr;//返回上下篇展示数据
}
如果有需要tp5做的权限功能代码的同学,可到此网址获取:https://www.kancloud.cn/zhuoe123/thinkphp5/1656454
测试地址:http://qx.wangzhuoe.cn/admin/login/login 超级管理员账号密码都是admin 管理员账号都是cs