php教程

超轻量级php框架startmvc

Yii列表定义与使用分页方法小结(3种方法)

更新时间:2020-03-10 01:07:59 作者:startmvc
本文实例讲述了Yii列表定义与使用分页方法。分享给大家供大家参考,具体如下:方法一:

本文实例讲述了Yii列表定义与使用分页方法。分享给大家供大家参考,具体如下:

方法一:控制器定义


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
 ));
}

视图定义:


<?php foreach($models as $model): ?>
// 显示一个模型
<?php endforeach; ?>
// 显示分页
<?php $this->widget('CLinkPager', array(
 'pages' => $pages,
)) ?>

方法二:控制器定义:


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,
 ));
}

视图文件:


<?php $this->widget('zii.widgets.CListView', array(
 'dataProvider'=>$dataProvider,
 'itemView'=>'_view',
)); ?>

方法三:视图文件


<?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',
 ),
 ),
));

数据模型类:


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 列表 定义 分页