Yii列表定义与使用分页方法小结(3种方法)
来源: 阅读:726 次 日期:2016-08-13 13:30:59
温馨提示: 小编为您整理了“Yii列表定义与使用分页方法小结(3种方法)”,方便广大网友查阅!

这篇文章主要介绍了Yii列表定义与使用分页方法,总结分析了3种方法供大家参考,涉及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

));

}

视图定义:

// 显示一个模型

// 显示分页

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,

));

}

视图文件:

widget('zii.widgets.CListView', array(

'dataProvider'=>$dataProvider,

'itemView'=>'_view',

)); ?>

方法三:视图文件

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,

),

));

}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

更多信息请查看 网络编程
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们| 联系我们| 人才招聘| 网站声明| 网站帮助| 非正式的简要咨询| 简要咨询须知| 加入群交流| 手机站点| 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00) 版权所有:
云南网警报警专用图标
Baidu
map