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 相关文章推荐
无限级别菜单的实现
Oct 09 PHP
MySQL GBK→UTF-8编码转换
May 24 PHP
PHP json_encode中文乱码问题的解决办法
Sep 09 PHP
symfony表单与页面实现技巧
Jan 26 PHP
PHP封装的HttpClient类用法实例
Jun 17 PHP
php将html转成wml的WAP标记语言实例
Jul 08 PHP
PHP处理会话函数大总结
Aug 05 PHP
php简单获取复选框值的方法
May 11 PHP
微信支付开发交易通知实例
Jul 12 PHP
php利用嵌套数组拼接与解析json的方法
Feb 07 PHP
PHP面向对象中new self()与 new static()的区别浅析
Aug 17 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 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权重计算方法代码分享
2014/01/09 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
通过源码解析Laravel的依赖注入
2018/01/22 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
js 调整select 位置的函数
2008/02/21 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
jtable列中自定义button示例代码
2013/11/21 Javascript
多选列表框动态添加,移动,删除,全选等操作的简单实例
2014/01/13 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
微信小程序webSocket的使用方法
2020/02/20 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
在Django下测试与调试REST API的方法详解
2019/08/29 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
彻底弄明白CSS3的Media Queries(跨平台设计)
2010/07/27 HTML / CSS
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
canvas版人体时钟的实现示例
2021/01/29 HTML / CSS
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
自我检讨报告
2015/01/28 职场文书
巴黎圣母院观后感
2015/06/10 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python
nginx 添加http_stub_status_module模块
2022/05/25 Servers