2023年6月21日发(作者:)

Thinkphp5——实现分页(模型和Db分页,多种⽅法)现在很多⽹站的数据量的很多,如果全部在⼀页⾥显⽰效果不好,数据量太⼤,那怎么办?这时我们就需要分页,⽽分页的好处就是分段显⽰数据,这样页⾯就不⽤加载很多数据,需要时才加载,下⾯我教⼤家实现ThinkPHP5分页。在分页之前我们要先引⼊bootstrap的css。

第⼀种:使⽤limit实现分页(不建议使⽤)limit⽅法也是模型类的连贯操作⽅法之⼀,主要⽤于指定查询和操作的数量,特别在分页查询的时候使⽤较多。ThinkPHP的limit⽅法可以兼容所有的数据库驱动类的。代码⽰例:Db::table('think_article')->limit('10,25')->select();从第10⾏开始的25条数据;使⽤limit很⿇烦,不推荐⼤家使⽤,我就不详细讲了

第⼆种:使⽤page实现分页page⽅法也是模型的连贯操作⽅法之⼀,是完全为分页查询⽽诞⽣的⼀个⼈性化操作⽅法。后台代码:$page = empty($params['page']) ? 1 : $params['page'];//获取当前页数$Products = Db::table('Products') ->alias('a') ->join('ProductsBrand b','d=d') ->where($wheres) ->page($page,12) ->select();$count = Db::table('Products')->count();//有多少条数据$sum = $count/12;//要分多少页$this->assign("Products",$Products);$this->assign("sum",$sum);$this->assign("page",$page);前台代码:

    {for start='1' comparison='<=' end='$sum'}
  • {$i}
  • {/for}

第三种:使⽤paginate实现分页(推荐)在tp5中使⽤bootstrap分页样式,其实根本不⽤那么⿇烦,只需要引⼊bootstrap的css⽂件就可以了。原因是tp5在组装分页链接的时候,默认是组装bootstrap的分页样式链接,就是说,会⾃动加上class的属性。ThinkPHP5.0内置了分页实现,要给数据添加分页输出功能在5.0变得⾮常简单,可以直接在Db类查询的时候调⽤paginate⽅法。组装链接的函数在后台代码:// 每页显⽰12条数据$Products = Db::table('Products')->paginate(12);前台代码:

{$Products->render();}

第四种:模型分页新闻栏⽬(Newsfl)hasMany('News','newsfl_id','id'); }}新闻(News)where('status',1)->paginate(10);或者$list = News::where('status',1)->paginate(10);如果想在关联中实现分页,如下:$news = Newsfl::get($id)->comm()->paginate(3);注:comm()是关联⽅法HTML+CSS分页的样式HTML

{$news->render()}
CSS/*分页样式*/.f_page { margin-top: 10px; display: flex;}.f_page .pagination { position: relative; margin: auto; height: 50px;}.f_page .pagination>li>a,.f_page .pagination>li>span { font-size: 14px; padding: 10px 20px; margin: 0 2px; color: #000;}.f_page .pagination>.active>span { background: #00ae66; color: #fff;}.f_page .pagination>.active>span:hover { background: #00ae66;}.f_page .pagination>.active>span,.f_page .pagination>.active>span:hover{ border-color: #00ae66;}.f_page ul li a:hover { background: #00ae66; text-decoration: none; color: #fff;}View Code

2023年6月21日发(作者:)

Thinkphp5——实现分页(模型和Db分页,多种⽅法)现在很多⽹站的数据量的很多,如果全部在⼀页⾥显⽰效果不好,数据量太⼤,那怎么办?这时我们就需要分页,⽽分页的好处就是分段显⽰数据,这样页⾯就不⽤加载很多数据,需要时才加载,下⾯我教⼤家实现ThinkPHP5分页。在分页之前我们要先引⼊bootstrap的css。

第⼀种:使⽤limit实现分页(不建议使⽤)limit⽅法也是模型类的连贯操作⽅法之⼀,主要⽤于指定查询和操作的数量,特别在分页查询的时候使⽤较多。ThinkPHP的limit⽅法可以兼容所有的数据库驱动类的。代码⽰例:Db::table('think_article')->limit('10,25')->select();从第10⾏开始的25条数据;使⽤limit很⿇烦,不推荐⼤家使⽤,我就不详细讲了

第⼆种:使⽤page实现分页page⽅法也是模型的连贯操作⽅法之⼀,是完全为分页查询⽽诞⽣的⼀个⼈性化操作⽅法。后台代码:$page = empty($params['page']) ? 1 : $params['page'];//获取当前页数$Products = Db::table('Products') ->alias('a') ->join('ProductsBrand b','d=d') ->where($wheres) ->page($page,12) ->select();$count = Db::table('Products')->count();//有多少条数据$sum = $count/12;//要分多少页$this->assign("Products",$Products);$this->assign("sum",$sum);$this->assign("page",$page);前台代码:

    {for start='1' comparison='<=' end='$sum'}
  • {$i}
  • {/for}

第三种:使⽤paginate实现分页(推荐)在tp5中使⽤bootstrap分页样式,其实根本不⽤那么⿇烦,只需要引⼊bootstrap的css⽂件就可以了。原因是tp5在组装分页链接的时候,默认是组装bootstrap的分页样式链接,就是说,会⾃动加上class的属性。ThinkPHP5.0内置了分页实现,要给数据添加分页输出功能在5.0变得⾮常简单,可以直接在Db类查询的时候调⽤paginate⽅法。组装链接的函数在后台代码:// 每页显⽰12条数据$Products = Db::table('Products')->paginate(12);前台代码:

{$Products->render();}

第四种:模型分页新闻栏⽬(Newsfl)hasMany('News','newsfl_id','id'); }}新闻(News)where('status',1)->paginate(10);或者$list = News::where('status',1)->paginate(10);如果想在关联中实现分页,如下:$news = Newsfl::get($id)->comm()->paginate(3);注:comm()是关联⽅法HTML+CSS分页的样式HTML

{$news->render()}
CSS/*分页样式*/.f_page { margin-top: 10px; display: flex;}.f_page .pagination { position: relative; margin: auto; height: 50px;}.f_page .pagination>li>a,.f_page .pagination>li>span { font-size: 14px; padding: 10px 20px; margin: 0 2px; color: #000;}.f_page .pagination>.active>span { background: #00ae66; color: #fff;}.f_page .pagination>.active>span:hover { background: #00ae66;}.f_page .pagination>.active>span,.f_page .pagination>.active>span:hover{ border-color: #00ae66;}.f_page ul li a:hover { background: #00ae66; text-decoration: none; color: #fff;}View Code