Yii分页方法(翻页方法)搜集
来源:互联网 发布:计算机专业知乎 编辑:程序博客网 时间:2024/05/22 02:26
在使用Yii Framework框架时,经常会用到Yi分页方法。
1、使用Yii中的CdbCriteria进行查询时实现翻页采用CPagination类:
在controller中的查询代码如下:
$criteria = new CDbCriteria;
$criteria -> addCondition("uid =:uid "); //添加查询条件$criteria -> params[':uid'] = $UID; //绑定查询条件的参数
$count= user::model()->count($criteria); //统计查询结果集中记录总数
$pager= new CPagination($count); //实例化CPagination类
$pager ->pageSize = 10; //设置一页显示记录数
$pager->pageVar = 'p'; //自定义URL中页码的参数,可以不设置
$pager->applyLimit($criteria); //将结果集进行过滤处理
以上就是在controller中最简洁的设置,如果对于翻页有特殊要求可以通过Yii手册查询CPagination类来进行具体设置。
下面是在view中的代码:
<?php
$this->widget('CLinkPager',array(
'header'=>'',
'firstPageLabel' => '首页',
'lastPageLabel' => '末页',
'prevPageLabel' => '上一页',
'nextPageLabel' => '下一页',
'pages' => $PAGE,
'maxButtonCount'=>5,
)
);
?>
2、自定义分页
'defaultOrder'=>array('title' => false), false是升序,true是倒叙
使用CPagination呈现相关信息到页码. 当数据需要渲染到多页时,我们可能使用去呈现信息,诸如itemCount, pageSize, currentPage,等等. 这些信息被传递到pagers
controller中代码如下:
$sql = "SELECT * FROM USER";
$data = Yii::app()->db->createCommand($sql)->queryAll();
$count = count($data);
$pages = new CPagination($count);
$pages->pageSize = 4;
//$pages->setCurrentPage(2);
$pdata =Yii::app()->db->createCommand($sql." LIMIT :offset,:limit");
$pdata->bindValue(':offset', $pages->currentPage*$pages->pageSize);//$pages->getOffset();
$pdata->bindValue(':limit', $pages->pageSize);//$pages->getLimit();
$info = $pdata->queryAll();
将变量传递到view中,在view中写入下面代码:
<?php
$this->widget('CLinkPager',array(
'header'=>'',
'firstPageLabel' => '首页',
'lastPageLabel' => '末页',
'prevPageLabel' => '上一页',
'nextPageLabel' => '下一页',
'pages' => $pages,
'maxButtonCount'=>13 //分页的按钮个数
)
);
?>
3.使用SQL查询进行分页:
controller代码如下:
public function actionSQL(){$count = Yii::app()->db->createCommand('SELECT COUNT(*) FROM film')->queryScalar();
$sql = 'SELECT film_id,title FROM film';
$dataProvider=new CSqlDataProvider($sql,array(
'keyField'=>'film_id', //sql in select table column default id
'totalItemCount'=>$count,
'sort'=>array(
'attributes'=>array('title'), //sql table columns
'defaultOrder'=>array('title' => true),
),
'pagination'=>array(
'pageSize'=>100,
),
));
$this->render('index', array(
'dataProvider' => $dataProvider,
));
}
view中代码如下:
<?php foreach($dataProvider->data as $film):?>
< ?php echo $film->title?>
< ?php endforeach?>
< ?php $this->widget('CLinkPager',array(
'pages'=>$dataProvider->pagination))?>
- Yii分页方法(翻页方法)搜集
- Yii 分页方法总结
- Yii 分页方法总结
- Yii 分页方法总结
- Yii分页方法
- Yii分页方法
- Yii-列表- 定义分页,分页方法
- Yii-列表- 定义分页,分页方法
- Yii 分页器Pagesize的设置方法
- yii CGridView 分页 初始化 js的方法
- Yii实现分页的两种方法
- yii框架搜索后分页查询方法
- 行转列,方法的搜集
- 常见日期方法搜集
- Storyboard有用方法搜集
- 常用JS方法搜集
- 数据库分页,翻页时会重新查询数据库,导致新数据参入,排序混乱问题解决方法
- yii 存取数据库方法
- Jamon
- 2013.12.28
- Vs2010 MFC 简单制作过程中的问题
- Word 和Latex的优势对比---转自知乎
- 如何在PCB设计中加强防干扰能力
- Yii分页方法(翻页方法)搜集
- mysql_connect和mysql_pconnect的区别[转]
- JAVA split("|") 简单的问题
- iOS中消息的传递机
- phpmyadmin 中一个字段值等于另外一张表的值
- Git使用教程
- 黑马程序员_java语言基础
- 关于apache的几个常见问题
- bluestacks 如何root 官网已公布root方法