上一篇文章刚提了一种全局改造的方法thinkphp框架的分页伪静态如何优化实现
通过上面那种方法我也成功实现的改造,但是在使用过程,发现还是有问题;
比如:
这个伪静态我只需要在前台实现这个功能,去配置路由,后台我不需要实现分页伪静态的功能,不然还得去配置路由,比较麻烦,也导致我开始写的后台分页访问不了,于是,这里提供了一个局部分页伪静态的方法。
//进入分类文章列表
public function articleList($id,$page=0){
$arr = db('nav')->where(['pid'=>$id,'isoff'=>1])->field('id')->select();
$arr1 = [$id];
foreach ($arr as $v){
$arr1[] = $v['id'];
}
$list = db('article a')->join('nav n','n.id=a.nav_id')
->where('a.isoff',1)->where('a.nav_id','in',$arr1)
->field('a.*,n.name')->order('a.start_time','DESC')
//主要是在分页paginate这里改造,别的地方不需要改动
->paginate(10,false,[$page,'path' => '/articleList/'.$id.'-[PAGE].html']);
$nav = Nav::get($id);
$page = $list->render();
$this->assign(array(
'article'=>$list,
'nav' =>$nav,
'page' =>$page
));
return $this->fetch('list');
}下面就是路由的配置,和上篇文章讲的一样
'articleList/<id>$' => ['Index/articleList',['method'=>'get','ext'=>'html']], //列表文章 'articleList/<id>-<page>' => ['Index/articleList',['method'=>'get','ext'=>'html'],['page'=>'\d+']],