参考:https://www.cnblogs.com/bushui/p/11953974.html
场景:详情页面,有上一页和下一页的按钮。
然后就需要返回,上一页下一页的id。
代码:
1.方法
/** * 根据环节id,获取详情 */ public function getLinkById(){ //判断参数 $params = Request()->param(); if(!array_key_exists("link_id",$params)){ return "参数错误"; } //获取当前id信息 $row = LinkModel::find($params['link_id']); //获取上一页信息 $prev = LinkModel::getprev($params['link_id']); //获取下一页信息 $next = LinkModel::getnext($params['link_id']); if(!empty($prev)){ $prev = $prev->toArray(); } if(!empty($next)){ $next = $next->toArray(); } if(empty($row)){ return '没有数据!'; } $row = $row->toArray(); //组装数据 $row['prev'] = $prev; $row['next'] = $next; $this->assign('row',$row); return $this->view->fetch(); }
2.Link模型中:
/** * 获取上条数据 */ public static function getprev($id){ return self::field('id') ->where('id',"<",$id) ->order("id desc") ->find(); } /** * 获取下条数据 */ public static function getnext($id){ return self::field('id') ->where('id',">",$id) ->order("id") ->find(); }
注:
在框架中,本来就有分页的方法paginate()。可以直接使用:
例:
public function getSummaryByPage($page = 1,$size = 20){
$pagingDate = self::order('create_time desc')
->paginate($size,true,['page'=>$page]);
return $pagingDate;
}
官方文档:
https://www.kancloud.cn/manual/thinkphp5_1/354120
总结:使用自己定义的,还是使用框架就有的,还是要视具体情况而定。