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 相关文章推荐
PHP新手上路(六)
Oct 09 PHP
php下几个常用的去空、分组、调试数组函数
Feb 22 PHP
php adodb分页实现代码
Mar 19 PHP
PHP array操作10个小技巧分享
Jun 23 PHP
深入解析Session是否必须依赖Cookie
Aug 02 PHP
PHP中HTML标签过滤技巧
Jan 07 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
php实现中文字符截取防乱码方法汇总
Apr 29 PHP
Symfony学习十分钟入门经典教程
Feb 03 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
Feb 26 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 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
php分页函数
2006/07/08 PHP
社区(php&amp;&amp;mysql)五
2006/10/09 PHP
使用PHP编写的SVN类
2013/07/18 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
使用ThinkPHP生成缩略图及显示
2017/04/27 PHP
JS日历 推荐
2006/12/03 Javascript
js 数组的for循环到底应该怎么写?
2010/05/31 Javascript
JS跨域代码片段
2012/08/30 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
2013/01/17 Javascript
jquery五角星评分插件示例分享
2014/02/21 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
jQuery简单实现彩色云标签效果示例
2016/08/01 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
vue移动端下拉刷新和上拉加载的实现代码
2018/09/08 Javascript
webpack file-loader和url-loader的区别
2019/01/15 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
python实现列表中由数值查到索引的方法
2018/06/27 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
自荐信格式范文
2013/10/07 职场文书
物业工作计划书
2014/01/10 职场文书
二年级小学生评语
2014/04/21 职场文书
经典毕业生求职信
2014/07/12 职场文书
村委会贫困证明范文
2014/09/21 职场文书
保密工作整改报告
2014/11/06 职场文书
2014年打非治违工作总结
2014/11/13 职场文书
python实战之90行代码写个猜数字游戏
2021/04/22 Python
将Python代码打包成.exe可执行文件的完整步骤
2021/05/12 Python
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers