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 相关文章推荐
如何提高MYSQL数据库的查询统计速度 select 索引应用
Apr 11 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
PHP访问MYSQL数据库封装类(附函数说明)
Dec 04 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
Jun 20 PHP
phpmailer发送邮件之后,返回收件人是否阅读了邮件的方法
Jul 19 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
浅谈本地WAMP环境的搭建
May 13 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
php闭包中使用use声明变量的作用域实例分析
Aug 09 PHP
Smarty缓存机制实例详解【三种缓存方式】
Jul 20 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
May 27 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
输出控制类
2006/10/09 PHP
php设计模式 Builder(建造者模式)
2011/06/26 PHP
php中rename函数用法分析
2014/11/15 PHP
CI框架附属类用法分析
2018/12/26 PHP
JS 统计时间
2021/03/09 Javascript
JS在IE和FF下attachEvent,addEventListener学习笔记
2009/11/26 Javascript
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
js 实现 input type=&quot;file&quot; 文件上传示例代码
2013/08/07 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
JS中用EL表达式获取上下文参数值的方法
2018/03/28 Javascript
node.js实现为PDF添加水印的示例代码
2018/12/05 Javascript
echarts多条折线图动态分层的实现方法
2019/05/24 Javascript
Vue实现简易购物车页面
2020/12/30 Vue.js
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
Python数据分析之如何利用pandas查询数据示例代码
2017/09/01 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
党员承诺书范文
2014/05/19 职场文书
活动总结结尾怎么写
2014/08/30 职场文书
领导班子三严三实心得体会
2014/10/13 职场文书
小学生作文评语集锦
2014/12/25 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
结婚纪念日感言
2015/08/01 职场文书
教师病假条范文
2015/08/17 职场文书
大学生村官工作心得体会
2016/01/23 职场文书