本文实例讲述了Yii列表定义与使用分页方法。分享给大家供大家参考,具体如下:
方法一:控制器定义
1
2
3
4
5
6
7
8
9
10
11
12
13
|
function actionIndex(){ $criteria = new CDbCriteria(); $count =Article::model()-> count ( $criteria ); $pages = new CPagination( $count ); // 返回前一页 $pages ->pageSize=10; $pages ->applyLimit( $criteria ); $models = Post::model()->findAll( $criteria ); $this ->render( 'index' , array ( 'models' => $models , 'pages' => $pages )); } |
视图定义:
1
2
3
4
5
6
7
|
<?php foreach ( $models as $model ): ?> // 显示一个模型 <?php endforeach ; ?> // 显示分页 <?php $this ->widget( 'CLinkPager' , array ( 'pages' => $pages , )) ?> |
方法二:控制器定义:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public function actionIndex() { $dataProvider = new CActiveDataProvider( 'News' , array ( 'criteria' => array ( 'condition' => 'status=1' , 'order' => 'create_time DESC' , 'with' => array ( 'author' ), ), 'pagination' => array ( 'pageSize' =>20, ), )); $this ->render( 'index' , array ( 'dataProvider' => $dataProvider , )); } |
视图文件:
1
2
3
4
|
<?php $this ->widget( 'zii.widgets.CListView' , array ( 'dataProvider' => $dataProvider , 'itemView' => '_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
34
|
<?php $this ->widget( 'zii.widgets.grid.CGridView' , array ( 'id' => 'news-grid' , 'dataProvider' => $model ->search(), 'filter' => $model , 'template' => '{items}{summary}{pager}' , <span style= "white-space:pre" > </span> 'pager' => array ( 'class' => 'CLinkPager' , 'header' => '分页:' , 'prevPageLabel' => '上一页' , 'nextPageLabel' => '下一页' , ), <span style= "white-space:pre" > </span> 'summaryText' => '页数:{pages}/{page}页' , <span style= "white-space:pre" > </span> 'columns' => array ( 'id' , array ( 'name' => 'title' , 'htmlOptions' => array ( 'width' => '20%' ), 'value' => 'mb_substr($data->title,0,10,"utf-8")' , ), array ( 'name' => 'content' , 'htmlOptions' => array ( 'width' => '20%' ), 'value' => 'mb_substr(strip_tags($data->content),0,10,"utf-8")' , ), array ( 'name' => 'type' , 'value' => 'News::model()->getNewsType($data->type)' , ), 'user' , array ( 'name' => 'status' , 'value' => 'News::model()->getNewsStatus($data->status)' , ), array ( 'class' => 'CButtonColumn' , ), ), )); |
数据模型类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public function search() { $criteria = new CDbCriteria; $criteria ->compare( 'id' , $this ->id); $criteria ->compare( 'title' , $this ->title,true); $criteria ->compare( 'content' , $this ->content,true); $criteria ->compare( 'type' , $this ->type); $criteria ->compare( 'user' , $this ->user,true); $criteria ->compare( 'status' , $this ->status); $criteria ->compare( 'create_data' , $this ->create_data,true); return new CActiveDataProvider( $this , array ( 'criteria' => $criteria , 'pagination' => array ( 'pageSize' =>50, ), )); } |
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。