首页 > 语言 > PHP > 正文

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

2024-05-04 23:48:12
字体:
来源:转载
供稿:网友

本文实例讲述了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,    ),  ));}


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选