- 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}',
- 'pager'=>array(
- 'class'=>'CLinkPager',
- 'header'=>'分页:',
- 'prevPageLabel'=>'上一页',
- 'nextPageLabel'=>'下一页',
- ),
- 'summaryText'=>'页数:{pages}/{page}页',
- '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,
- ),
- ));
- }