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


Posted in PHP onJuly 15, 2016

本文实例讲述了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框架的PHP程序设计有所帮助。

PHP 相关文章推荐
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
Sep 24 PHP
discuz的php防止sql注入函数
Jan 17 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
Sep 11 PHP
几种有用的变型 PHP中循环语句的用法介绍
Jan 30 PHP
PHPThumb PHP 图片缩略图库
Mar 11 PHP
php多文件上传功能实现原理及代码
Apr 18 PHP
PHP字符串的递增和递减示例介绍
Feb 11 PHP
php ci框架中加载css和js文件失败的原因及解决方法
Jul 29 PHP
yii通过小物件生成view的方法
Oct 08 PHP
php处理静态页面:页面设置缓存时间实例
Jun 22 PHP
Laravel获取所有的数据库表及结构的方法
Oct 10 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
Apr 26 PHP
session 加入redis的实现代码
Jul 15 #PHP
Yii模型操作之criteria查找数据库的方法
Jul 15 #PHP
功能强大的PHP POST提交数据类
Jul 15 #PHP
Yii的Srbac插件用法详解
Jul 14 #PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 #PHP
Yii视图操作之自定义分页实现方法
Jul 14 #PHP
全面解析PHP操作Memcache基本函数
Jul 14 #PHP
You might like
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
请php正则走开
2008/03/15 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
2015/01/04 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
Prototype Class对象学习
2009/07/19 Javascript
nodejs实用示例 缩址还原
2010/12/28 NodeJs
Vue表单实例代码
2016/09/05 Javascript
使用jQuery的ajax方法向服务器发出get和post请求的方法
2017/01/13 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
jQuery 选择器用法基础入门示例
2020/01/04 jQuery
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
Python OS模块常用函数说明
2015/05/23 Python
详解Python中的四种队列
2018/05/21 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
解决python运行启动报错问题
2020/06/01 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
学前教育求职自荐信范文
2013/12/25 职场文书
远程研修随笔感言
2014/02/10 职场文书
《落花生》教学反思
2014/02/25 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
歌颂党的演讲稿
2014/09/10 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android
python之PySide2安装使用及QT Designer UI设计案例教程
2021/07/26 Python
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA
Python实现自动玩连连看的脚本分享
2022/04/04 Python