当网站的留言内容越来越多的时候,分页功能的应用就应运而生了,本章我们就来重点讲解下ThinkPHP框架自带的分页类的调用
一、首先需要在MsgManage控制器中加入分页方法admin/Lib/Action/MsgManageAction.class.php
知识点:
1、count函数的试用
2、Page类实例化操作及相关参数了解
3、limit函数了用
4、show函数了解
代码如下:
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
|
;
html
-
script
:
false
]
class
MsgManageAction
extends
CommonAction
{
public
function
index
(
)
{
import
(
'ORG.Util.Page'
)
;
//import调用的是message/ThinkPHP框架目录下的扩展包Extend/Library/ORG/Util/中的Page.class.php类文件
$
count
=
M
(
'board'
)
->
count
(
)
;
//调用board库,取出所有数据条数
$
page
=
new
Page
(
$
count
,
10
)
;
//实例化Page类,其中第一个参数为显示条数的总数,每次取出十条,也就是下面$page->listRows的值
$
limit
=
$
page
->
firstRow
.
','
.
$
page
->
listRows
;
//$page->firstRow为查找的起始条数,默认为0,如果$page->listRows为10,那么第2页的$page->firstRow就为10,以此类推
$
board
=
M
(
'board'
)
->
order
(
'time DESC'
)
->
limit
(
$
limit
)
->
select
(
)
;
//注意,这里较之前的版本添加了->limit($limit)
$
this
->
board
=
$
board
;
$
this
->
page
=
$
page
->
show
(
)
;
//将$page->show()通过show方法解析$page内容显示并赋值给模板变量,供模板调用
$
this
->
display
(
)
;
}
Public
function
delete
(
)
{
$
id
=
I
(
'id'
,
''
,
'intval'
)
;
if
(
M
(
'board'
)
->
delete
(
$
id
)
)
{
$
this
->
success
(
'删除成功'
,
U
(
'index'
)
)
;
}
else
{
$
this
->
error
(
'删除失败'
)
;
}
}
}
|
show方法是3.1版本才有的一个新功能
ThinkPHP中页面输出的过程是读取模板文件,然后进行模板解析(也支持调用第三方模板引擎解析),但是有一些情况,我们并没有定义模板文件,或者把模板文件保存在数据库里面,那么这个时候进行页面输出的时候,我们是无法进行模板文件读取的,3.1版本则针对这样的情况增加了内容解析输出的功能。
内置的模板引擎也进行了完善,如果传入的模板文件不存在的话,则会认为是传入的模板解析内容,因此,3.1的View类和Action类也做了一些改进。
display方法用于模板文件渲染输出,show方法则用于模板内容渲染输出,并且show方法仍然支持内容解析功能
具体内容可参考:ThinkPHP3.1新特性 内容解析输出
二、在模板文件中加入验证码模块admin/Tpl/MsgManage/index.html
知识点:
1、td单元格合并
2、$page变量调用显示
加入一段tr用来显示分页相关,代码如下:
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
|
;
html
-
script
:
false
]
<
!
DOCTYPE
html
PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
<
html
>
<
head
>
<
meta
http
-
equiv
=
"Content-Type"
content
=
"text/html; charset=UTF-8"
>
<
title
>
Message
Board
BackGround
<
/
title
>
<
/
head
>
<
body
>
<
table
class
=
"table"
border
=
"1"
>
<
tr
>
<
th
>
ID
<
/
th
>
<
th
>发布者
<
/
th
>
<
th
>内容
<
/
th
>
<
th
>发布时间
<
/
th
>
<
th
>操作
<
/
th
>
<
/
tr
>
<
foreach
name
=
'board'
item
=
'b'
>
<
tr
>
<
td
>
{
$
b
.
id
}
<
/
td
>
<
td
>
{
$
b
.
username
}
<
/
td
>
<
td
>
{
$
b
.
content
}
<
/
td
>
<
td
>
{
$
b
.
time
|
date
=
'y-m-d H:i'
,
###}</td>
<
td
>
<
a
href
=
"{:U('admin.php/MsgManage/delete',array('id' => $b['id'])),''}"
>删除
<
/
a
>
<
/
td
>
<
/
tr
>
<
/
foreach
>
//新增tr代码短
<
tr
>
<
td
colspan
=
'5'
align
=
'center'
>
//将5个单元格合并,并且居中显示
{
$
page
}
//显示控制器中$this->page内容
<
/
td
>
<
/
tr
>
<
/
table
>
<
/
body
>
<
/
html
>
|
收 藏
转载请注明:成长的对话 » (四)ThinkPHP实践之分页讲解-TTLSA