下面我总结了在Yii常用的一些yii分页方式与实例代码,这里有普通分页与ajax实现分页,希望此文章对大家会有所帮助。
第一种:CListView分页 针对对象形式的数据分页
Controller:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
View:
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 |
|
第二种:CLinkPager 针对数组形式的数据分页
Controller:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
View:
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 |
|
第三种: DAO实现分页.
Controller层:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
View层:
1 2 3 4 5 6 7 8 |
|
优点: DAO效率高; 缺点: view层需要自己写一些样式,稍显麻烦一点
第四种:widget实现分页
model层:
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 |
|
Controller层:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
View层:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
优点: 可以使用自带的样式; 缺点: 效率略低.
第五种:Ajax分页
YII中ajax分页有多种实现方法,比较传统的就是在view中写JS来实现,大概的就是这样:
在view中js大概逻辑是这样
1 2 3 4 5 6 7 8 9 |
|
然后在controller中判断ajax请求,再使用renderPartial方法渲染局部List视图,然后局部视图会被view中的ajax方法填充到局部刷新的div中。controller的大概逻辑是:
1 2 3 4 5 6 7 8 |
|
后来发现YII中的CListview更方便,封装了分页,foreach显示list,还支持数据排序。具体的可以在YII的API手册中发掘。使用CListview是默认ajax分页的,使用方法如下:
controller中:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
然后在view中:
1 2 3 4 5 6 7 8 9 10 11 |
|
这样就实现了Ajax分页,很方便。
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
更多Yii2分页的使用及其扩展方法详解相关文章请关注PHP中文网!