本文实例讲述了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.****.net/huangyuxin_/article/details/83025590