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

2018-09-07 15:12

阅读:287

  本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

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


评论


亲,登录后才可以留言!