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)類型,可以省略 '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'=>'文章類別', /*'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)文章
Laravel框架數(shù)據(jù)庫(kù)CURD操作、連貫操作總結(jié)
這篇文章主要介紹了Laravel框架數(shù)據(jù)庫(kù)CURD操作、連貫操作、鏈?zhǔn)讲僮骺偨Y(jié),本文包含大量數(shù)據(jù)庫(kù)操作常用方法,需要的朋友可以參考下2014-09-09php實(shí)現(xiàn)格式化多行文本為Js可用格式
本文給大家分享的是使用php實(shí)現(xiàn)格式化多行文本為Js可用格式,思路非常簡(jiǎn)單,這里推薦給大家,有需要的小伙伴參考下。2015-04-04ThinkPHP 框架實(shí)現(xiàn)的讀取excel導(dǎo)入數(shù)據(jù)庫(kù)操作示例
這篇文章主要介紹了ThinkPHP 框架實(shí)現(xiàn)的讀取excel導(dǎo)入數(shù)據(jù)庫(kù)操作,結(jié)合實(shí)例形式分析了thinkPHP針對(duì)Excel文件的讀取、解析以及數(shù)據(jù)庫(kù)的寫入相關(guān)操作技巧,需要的朋友可以參考下2020-04-04確保Laravel網(wǎng)站不會(huì)被嵌入到其他站點(diǎn)中的方法
這篇文章主要介紹了確保Laravel網(wǎng)站不會(huì)被嵌入到其他站點(diǎn)中的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10YII2.0之Activeform表單組件用法實(shí)例
這篇文章主要介紹了YII2.0之Activeform表單組件用法,結(jié)合實(shí)例形式Activeform表單組件的具體類型及相關(guān)使用技巧,需要的朋友可以參考下2016-01-01使用php的HTTP請(qǐng)求的庫(kù)Requests實(shí)現(xiàn)美女圖片墻
這篇文章主要介紹了使用php的HTTP請(qǐng)求的庫(kù)Requests實(shí)現(xiàn)美女圖片墻的方法,十分簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-02-02