TP3.2框架分页相关实现方法分析
这篇文章主要介绍了TP3.2框架分页相关实现方法,结合实例形式分析了TP3.2框架分页相关步骤、功能实现方法与操作技巧,需要的朋友可以参考下
本文实例讲述了TP3.2框架分页相关实现方法。分享给大家供大家参考,具体如下:
需要用到分页的继承这个控制器即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | <?php namespace Home\Controller; use Think\Controller; class BaseController extends Controller { /** * 基础分页的相同代码封装,使前台的代码更少 * @param $count 要分页的总记录数 * @param int $pagesize 每页查询条数 * @return \Think\Page */ function getpage( $count , $pagesize = 20, $waps ) { $Page = new \Think\Page( $count , $pagesize , $waps ); $Page ->rollPage = 5; $Page ->setConfig( 'header' , '<li class="rows">第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>' ); $Page ->setConfig( 'prev' , '上一页' ); $Page ->setConfig( 'next' , '下一页' ); $Page ->setConfig( 'last' , '末页' ); $Page ->setConfig( 'first' , '首页' ); $Page ->setConfig( 'theme' , '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%' ); $Page ->lastSuffix = false; //最后一页不显示为总页数 return $Page ; } /** * @param $model 模型 * @param $map where条件 * @param $find 0 select 1=find 2=关联表 * @return $list 数组 */ function _select( $model , $map , $order = '' , $field = "" , $find = "0" , $limit =20, $join , $param ){ $waps = $param ; if ( empty ( $model ) && empty ( $map )){ $this ->list = array (); } else { if ( $find == 0){ $count = $model ->where( $map )-> count (); $Page = $this ->getpage( $count , $limit , $waps ); if ( $Page ->firstRow < 0){ $Page ->firstRow = 0; } if ( $order != "" ){ $this ->list = $model ->field( $field )->where( $map )->order( $order )->limit( $Page ->firstRow. ',' . $Page ->listRows)->select(); } else { $this ->list = $model ->field( $field )->where( $map )->limit( $Page ->firstRow. ',' . $Page ->listRows)->select(); } $this ->page = $Page ->show(); } else if ( $find == 1){ $this ->list = $model ->field( $field )->where( $map )->find(); } else if ( $find == 3){ $count = $model ->alias( "t1" )->join( $join )->where( $map )-> count (); $Page = $this ->getpage( $count , $limit , $waps ); if ( $Page ->firstRow < 0){ $Page ->firstRow = 0; } if ( $order != "" ){ $this ->list = $model ->alias( "t1" )->join( $join )->field( $field )->where( $map )->order( $order )->limit( $Page ->firstRow. ',' . $Page ->listRows)->select(); } else { $this ->list = $model ->alias( "t1" )->join( $join )->field( $field )->where( $map )->limit( $Page ->firstRow. ',' . $Page ->listRows)->select(); } $this ->page = $Page ->show(); } else if ( $find == 4){ if ( $order != "" ){ $this ->list = $model ->alias( "t1" )->join( $join )->field( $field )->where( $map )->order( $order )->limit( $Page ->firstRow. ',' . $Page ->listRows)->find(); } else { $this ->list = $model ->alias( "t1" )->join( $join )->field( $field )->where( $map )->limit( $Page ->firstRow. ',' . $Page ->listRows)->find(); } } $this ->limit = $Page ->firstRow; $this ->assign( "listinfo" , $this ->list); $this ->assign( "page" , $this ->page); return ( $this ->list); } } } |
控制器中先继承后使用。
1 2 3 4 5 6 7 | if ( $this ->txt_keyword){ $where [ 'm_title' ] = array ( 'like' , '%' . $this ->txt_keyword. '%' ); } $where [ 'status' ] = $param [ 'status' ] = 0; $this ->_select( $this ->information_mod, $where , '' , '*' ,0,10, '' , $param ); $this ->display(); |
模板中
1 2 3 | <div class = "hg_page" > { $page } </div> |
分页样式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <style> .hg_page .first, .hg_page .current, .hg_page .num, .hg_page .next, .hg_page .end, .hg_page .rows, .hg_page .prev{ float : left ; height : 37px ; padding : 0 15px ; border : 1px solid #e5e5e5 ; line-height : 37px ; margin : 0 3px ; } .hg_page{ text-align : center ; height : 37px ; margin : 0 auto ; margin-top : 30px ; margin-bottom : 20px ; width : 800px ; } </style> |