yii2-GridView在開(kāi)發(fā)中常用的功能及技巧總結(jié)
數(shù)據(jù)網(wǎng)格或者說(shuō) GridView 小部件是Yii中最強(qiáng)大的部件之一。它有一個(gè)屬性名叫 dataProvider ,這個(gè)屬性能夠提供一個(gè)數(shù)據(jù)提供者的示例并且可以顯示所提供的數(shù)據(jù),即使用 yii\grid\GridView::columns 屬性的一組列配置,在一個(gè)表格中渲染每一行數(shù)據(jù)。
例如,
use yii\helpers\Html; use yii\grid\GridView; <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], 'id', ]);?>
一、表格列
表格的列是通過(guò) GridView 配置項(xiàng)中的 yii\grid\GridView::columns 屬性配置的.
<?php
use yii\grid\GridView;
echo GridView::widget([
'dataProvider' => $dataProvider,
//表格列值搜索功能,注意一定要配合attribute才會(huì)顯示
//$searchModel = new ArticleSearch();
'filterModel' => $searchModel,
//重新定義分頁(yè)樣式
'layout'=> '{items}<div class="text-right tooltip-demo">{pager}</div>',
'pager'=>[
//'options'=>['class'=>'hidden']//關(guān)閉分頁(yè)
'firstPageLabel'=>"First",
'prevPageLabel'=>'Prev',
'nextPageLabel'=>'Next',
'lastPageLabel'=>'Last',
]
'columns' => [
['class' => 'yii\grid\SerialColumn'],//序列號(hào)從1自增長(zhǎng)
// 數(shù)據(jù)提供者中所含數(shù)據(jù)所定義的簡(jiǎn)單的列
// 使用的是模型的列的數(shù)據(jù)
'id',
'username',
// 更復(fù)雜的列數(shù)據(jù)
[
'class' => 'yii\grid\DataColumn', //由于是默認(rèn)類(lèi)型,可以省略
'value' => function ($data) {
return $data->name;
// 如果是數(shù)組數(shù)據(jù)則為 $data['name'] ,
例如,使用 SqlDataProvider 的情形。
},
],
['label'=>'標(biāo)題','value' => 'title'],
['label'=>'文章內(nèi)容','format' => 'html','value' => 'content'],
[
'label'=>'文章類(lèi)別',
/*'attribute' => 'cid',產(chǎn)生一個(gè)a標(biāo)簽,點(diǎn)擊可排序*/
'value' => 'cate.cname' //關(guān)聯(lián)表
],
[
//動(dòng)作列yii\grid\ActionColumn
//用于顯示一些動(dòng)作按鈕,如每一行的更新、刪除操作。
'class' => 'yii\grid\ActionColumn',
'header' => '操作',
'template' => '{delete} {update}',//只需要展示刪除和更新
'headerOptions' => ['width' => '240'],
'buttons' => [
'delete' => function($url, $model, $key){
return Html::a('<i class="fa fa-ban"></i> 刪除',
['del', 'id' => $key],
[
'class' => 'btn btn-default btn-xs',
'data' => ['confirm' => '你確定要?jiǎng)h除文章嗎?',]
]
);
},
],
],
],
]);
?>
1. 處理時(shí)間
數(shù)據(jù)列的主要配置項(xiàng)是 yii\grid\DataColumn::format 屬性。它的值默認(rèn)是使用 \yii\i18n\Formatter 應(yīng)用組件。
[
'label'=>'更新日期',
'format' => ['date', 'php:Y-m-d'],
'value' => 'updated_at'
],
//or
[
//'attribute' => 'created_at',
'label'=>'更新時(shí)間',
'value'=>function($model){
return date('Y-m-d H:i:s',$model->created_at);
},
'headerOptions' => ['width' => '170'],
],
2. 處理圖片
[
'label'=>'封面圖',
'format'=>'raw',
'value'=>function($m){
return Html::img($m->cover,
['class' => 'img-circle',
'width' => 30]
);
}
],
3. 數(shù)據(jù)列有鏈接
[
'attribute' => 'title',
'value' => function ($model, $key, $index, $column) {
return Html::a($model->title,
['article/view', 'id' => $key]);
},
'format' => 'raw',
],
4. 數(shù)據(jù)列顯示枚舉值(男/女)
[
'attribute' => 'sex',
'value'=>function ($model,$key,$index,$column){
return $model->sex==1?'男':'女';
},
//在搜索條件(過(guò)濾條件)中使用下拉框來(lái)搜索
'filter' => ['1'=>'男','0'=>'女'],
//or
'filter' => Html::activeDropDownList($searchModel,
'sex',['1'=>'男','0'=>'女'],
['prompt'=>'全部']
)
],
[
'label'=>'產(chǎn)品狀態(tài)',
'attribute' => 'pro_name',
'value' => function ($model) {
$state = [
'0' => '未發(fā)貨',
'1' => '已發(fā)貨',
'9' => '退貨,已處理',
];
return $state[$model->pro_name];
},
'headerOptions' => ['width' => '120']
]
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Yii中CArrayDataProvider和CActiveDataProvider區(qū)別實(shí)例分析
- 淺析Yii2中GridView常見(jiàn)操作
- yii2.0之GridView自定義按鈕和鏈接用法
- Yii2 GridView實(shí)現(xiàn)列表頁(yè)直接修改數(shù)據(jù)的方法
- 淺析Yii2 gridview實(shí)現(xiàn)批量刪除教程
- 淺析Yii2 GridView實(shí)現(xiàn)下拉搜索教程
- 淺析Yii2 GridView 日期格式化并實(shí)現(xiàn)日期可搜索教程
- yii2使用GridView實(shí)現(xiàn)數(shù)據(jù)全選及批量刪除按鈕示例
- yii2中結(jié)合gridview如何使用modal彈窗實(shí)例代碼詳解
- yii2使用gridView實(shí)現(xiàn)下拉列表篩選數(shù)據(jù)
- Yii2.0小部件GridView(兩表聯(lián)查/搜索/分頁(yè))功能的實(shí)現(xiàn)代碼
- YII2框架中ActiveDataProvider與GridView的配合使用操作示例
相關(guān)文章
Symfony數(shù)據(jù)校驗(yàn)方法實(shí)例分析
這篇文章主要介紹了Symfony數(shù)據(jù)校驗(yàn)方法,實(shí)例分析了Symfony數(shù)據(jù)校驗(yàn)的常見(jiàn)技巧與注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01
PHP文件類(lèi)型檢查及fileinfo模塊安裝使用詳解
這篇文章主要介紹了PHP文件類(lèi)型檢查及fileinfo模塊安裝使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
php實(shí)現(xiàn)的太平洋時(shí)間和北京時(shí)間互轉(zhuǎn)的自定義函數(shù)分享
這篇文章主要介紹了php實(shí)現(xiàn)的太平洋時(shí)間和北京時(shí)間互轉(zhuǎn)的自定義函數(shù)分享,主要靠date_default_timezone_set函數(shù)來(lái)實(shí)現(xiàn),需要的朋友可以參考下2014-08-08
使用ThinkPHP的自動(dòng)完成實(shí)現(xiàn)無(wú)限級(jí)分類(lèi)實(shí)例詳解
這篇文章主要介紹了使用ThinkPHP的自動(dòng)完成實(shí)現(xiàn)無(wú)限級(jí)分類(lèi)功能,本文通過(guò)圖文并茂的方式給大家展示,介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-09-09
ThinkPHP結(jié)合AjaxFileUploader實(shí)現(xiàn)無(wú)刷新文件上傳的方法
這篇文章主要介紹了ThinkPHP結(jié)合AjaxFileUploader實(shí)現(xiàn)無(wú)刷新文件上傳的方法,是ThinkPHP文件上傳中一個(gè)比較典型的應(yīng)用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10
thinkphp5.1框架實(shí)現(xiàn)格式化mysql時(shí)間戳為日期的方式小結(jié)
這篇文章主要介紹了thinkphp5.1框架實(shí)現(xiàn)格式化mysql時(shí)間戳為日期的方式,結(jié)合實(shí)例形式分析了thinkPHP針對(duì)mysql時(shí)間戳格式轉(zhuǎn)換的相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
php array_values 返回?cái)?shù)組的所有值詳解及實(shí)例
這篇文章主要介紹了php array_values 返回?cái)?shù)組的所有值詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-11-11

