本文实例讲述了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> |
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/huangyuxin_/article/details/83025590