詳解Yii實(shí)現(xiàn)分頁的兩種方法
Yii實(shí)現(xiàn)分頁的兩種方法,一種是用DAO實(shí)現(xiàn),另外一種是在widget實(shí)現(xiàn).
各有優(yōu)點(diǎn)吧,第一種效率會高一點(diǎn), 第二種可以使用自帶的表格,方便一些.
一. DAO實(shí)現(xiàn)分頁.
[Controller層]
public function actionReport()
{
$sql = "select remitdate, sum(rate) sumrate from td_delivery
group by remitdate
order by remitdate desc";
$criteria=new CDbCriteria();
$result = Yii::app()->db->createCommand($sql)->query();
$pages=new CPagination($result->rowCount);
$pages->pageSize=2;
$pages->applyLimit($criteria);
$result=Yii::app()->db->createCommand($sql." LIMIT :offset,:limit");
$result->bindValue(':offset', $pages->currentPage*$pages->pageSize);
$result->bindValue(':limit', $pages->pageSize);
$posts=$result->query();
$this->render('report',array(
'posts'=>$posts,
'pages'=>$pages,
));
}
[View層]
<?php foreach($posts as $row):?>
<?php echo CHtml::link($row["remitdate"],array('delivery/view','remitdate'=>$row["sumrate"]));?>
<?php echo $row["sumrate"]."<br />" ?>
<?php endforeach;?>
<?php
//分頁widget代碼:
$this->widget('CLinkPager',array('pages'=>$pages));
?>
優(yōu)點(diǎn): DAO效率高; 缺點(diǎn): view層需要自己寫一些樣式,稍顯麻煩一點(diǎn)
二. widget實(shí)現(xiàn)分頁
[model層]
/**
* @var string attribute : 日運(yùn)費(fèi) (統(tǒng)計(jì)用)
* 需要對新增加的字段做個(gè)聲明
*/
public $dayrate;
/*
* 統(tǒng)計(jì)功能: 統(tǒng)計(jì)每日的運(yùn)費(fèi)
*/
public function statistics()
{
$criteria = new CDbCriteria;
$criteria->select = 'remitdate, sum(rate) AS dayrate';
$criteria->group = 'remitdate';
return new CActiveDataProvider(get_class($this), array(
'criteria'=>$criteria,
'sort'=>array(
// 表頭設(shè)置點(diǎn)擊排序的字段
'attributes'=>array(
'remitdate',
'dayrate'=>array(
'asc'=>'dayrate',
'desc'=>'dayrate DESC',
)
),
'defaultOrder'=>'remitdate desc',
),
));
}
[Controller層]
/**
* 運(yùn)單統(tǒng)計(jì)功能:
* 按日期統(tǒng)計(jì)
*/
public function actionReport()
{
$model=new Delivery('statistics');
$model->unsetAttributes(); // clear any default values
$this->render('report',array(
'model'=>$model,
));
}
[View層]
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'delivery-grid',
'dataProvider'=>$model->statistics(),
'filter'=>$model,
'columns'=>array(
'remitdate',
'dayrate',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
優(yōu)點(diǎn): 可以使用自帶的樣式; 缺點(diǎn): 效率略低.
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- yii分頁組件用法實(shí)例分析
- Yii2.0框架實(shí)現(xiàn)帶分頁的多條件搜索功能示例
- Yii2.0小部件GridView(兩表聯(lián)查/搜索/分頁)功能的實(shí)現(xiàn)代碼
- yii2實(shí)現(xiàn)分頁,帶搜索的分頁功能示例
- yii2分頁之實(shí)現(xiàn)跳轉(zhuǎn)到具體某頁的實(shí)例代碼
- Yii2分頁的使用及其擴(kuò)展方法詳解
- Yii分頁用法實(shí)例詳解
- Yii使用CLinkPager分頁實(shí)例詳解
- Yii列表定義與使用分頁方法小結(jié)(3種方法)
- Yii1.1中通過Sql查詢進(jìn)行的分頁操作方法
- yii使用bootstrap分頁樣式的實(shí)例
- YII2框架中分頁組件的使用方法示例
相關(guān)文章
JSON PHP中,Json字符串反序列化成對象/數(shù)組的方法
今天小編就為大家分享一篇JSON PHP中,Json字符串反序列化成對象/數(shù)組的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
yii2.0數(shù)據(jù)庫遷移教程【多個(gè)數(shù)據(jù)庫同時(shí)同步數(shù)據(jù)】
這篇文章主要介紹了yii2.0數(shù)據(jù)庫遷移的方法,可實(shí)現(xiàn)多個(gè)數(shù)據(jù)庫同時(shí)同步數(shù)據(jù)的功能,較為詳細(xì)的分析了Yii2針對遷移的創(chuàng)建、提交、重做及自定義遷移的相關(guān)概念與使用方法,需要的朋友可以參考下2016-10-10
thinkphp整合系列之極驗(yàn)滑動驗(yàn)證碼geetest功能
這篇文章主要介紹了thinkphp整合系列之極驗(yàn)滑動驗(yàn)證碼geetest ,功能的實(shí)例代碼,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06
PHP+Ajax實(shí)現(xiàn)驗(yàn)證碼的實(shí)時(shí)驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了PHP+Ajax實(shí)現(xiàn)驗(yàn)證碼的實(shí)時(shí)驗(yàn)證,感興趣的小伙伴們可以參考一下2016-07-07
php通過GD庫實(shí)現(xiàn)驗(yàn)證碼功能
這篇文章主要介紹了php通過GD庫實(shí)現(xiàn)驗(yàn)證碼功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
Laravel5.1 框架Middleware中間件基本用法實(shí)例分析
這篇文章主要介紹了Laravel5.1 框架Middleware中間件基本用法,結(jié)合實(shí)例形式分析了laravel5.1框架Middleware中間件功能、創(chuàng)建、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-01-01
laravel 操作數(shù)據(jù)庫常用函數(shù)的返回值方法
今天小編就為大家分享一篇laravel 操作數(shù)據(jù)庫常用函數(shù)的返回值方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10

