亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

淺析Yii2中GridView常見操作

2024-05-04 23:45:09
字體:
來源:轉載
供稿:網友
本文是小編給大家收集整理些有關網絡上Yii2中GridView常見操作中出現的大部分問題,本文做一個總結特此分享到VeVb武林網平臺供大家參考
 

本文是小編給大家收集整理些有關網絡上GridView出現的大部分問題,本文做一個總結特此分享到VeVb武林網平臺供大家參考。

如果下面有沒說到的GridView常見問題,下方留言,我會進行補充。

下拉搜索

日期格式化并實現日期可搜索

根據參數進行是否顯示

鏈接可點擊跳轉

顯示圖片

html渲染

自定義按鈕

設定寬度等樣式

自定義字段

自定義行樣式

增加按鈕調用js操作

yii2 GridView 下拉搜索實現案例教程

yii2 GridView 日期格式化并實現日期可搜索 案例

是否顯示某列案例

我們舉一個簡單的案例

條件:有一個get形參數type

需求:僅且type的值等于1的時候,列name才顯示,否則該列不顯示

代碼實現如下:

['attribute' => 'name','value' => $model->name,'visible' => intval(Yii::$app->request->get('type')) == 1,],

實現方式也是很簡單滴。

鏈接可點擊跳轉案例

這個跟接下來我們要說的html渲染的效果十分類似,這里要說的是列的屬性值 format,具體都有哪些格式可查看文件 yii/i18n/Formatter.php,各種format都可以解決

['attribute' => 'order_id','value' => function ($model) {return Html::a($model->order_id, "/order?id={$model->order_id}", ['target' => '_blank']);},'format' => 'raw',],

顯示圖片案例

同上,這里只需要指定format格式為image即可,format第二個參數可設定圖片大小,可參考下面的代碼

['label' => '頭像','format' => ['image', ['width'=>'84','height'=>'84']],'value' => function ($model) { return $model->image; }],

html渲染案例

什么意思喃,舉個例子,我們有一個字段,標記為title,但是這個title不一樣,ta含有html標簽,我們不想在頁面上展示<p>title123<p>這種形式,我們想要title123以p標簽的形式展示,代碼可參考如下,只需要指定format為raw形式即可

['attribute' => 'title','value' => function ($model) { return Html::encode($model->title); },'format' => 'raw',],

自定義按鈕案例

往往列表頁我們不想要刪除按鈕,想在增加一個比如獲取xxx按鈕,怎么搞呢?這里需要設置ActionColumn類,修改配置項template并在buttons項增加template里增加的get-xxx即可

['class' => 'yii/grid/ActionColumn','template' => '{get-xxx} {view} {update}','header' => '操作','buttons' => ['get-xxx' => function ($url, $model, $key) { return Html::a('獲取xxx', $url, ['title' => '獲取xxx'] ); },],],

設定寬度案例

舉個簡單的例子,我們的title列,太長了,能不能給我先定下這一列的寬度?

答案:能。

請看示例:

['attribute' => 'title','value' => 'title','headerOptions' => ['width' => '100'],],

只需要指定配置項headerOptions即可。

自定義字段案例

啥時自定義?這里我們是指在表格里增加一列且數據庫中不存在對應的列。假如我們新增一列 訂單消費金額money且該表不存在該字段

['attribute' => '消費金額','value' => function ($model) {// 這里可以根據該表的其他字段進行關聯獲取}],

自定義行樣式

有小伙伴說了,gii生成的這個gridview表格呀,行跟行的顏色不明顯,看著難受,我滴乖乖,具體怎么難受咱們就不追究了。我們來看看怎么定義行樣式

<?= GridView::widget([// ......'dataProvider' => $dataProvider,'rowOptions' => function($model, $key, $index, $grid) {return ['class' => $index % 2 ==0 ? 'label-red' : 'label-green'];},// ......]); ?>

前面的操作我們都是依據列column的,這里因為是對行的控制,所以我們配置rowOptions要稍微注意一下。此外,自定義的label-red和label-green需要有對應的樣式實現,這里我們看一下頁面的實際效果

增加按鈕調用js操作案例

那邊產品經理走過來了,小王呀,你這個修改狀態的功能很頻繁,每次都要先點進詳情頁才能修改,能不能我在列表頁面上鼠標那么一點就成功修改了呢?

其實就是一個異步請求操作了當前行的狀態嘛,我們來看看gridview里面是怎么實現的。

['class' => 'yii/grid/ActionColumn','header' => '操作','template' => '{view} {update} {update-status}','buttons' => ['update-status' => function ($url, $model, $key) {return Html::a('更新狀態', 'javascript:;', ['onclick'=>'update_status(this, '.$model->id.');']); },],],

我們需要在頁面寫js實現方法 update_status, 關于如何在頁面底部加載js請點擊參考

補充:GridView 小部件在開發中常用的功能及技巧。

數據網格或者說 GridView 小部件是Yii中最強大的部件之一。

它有一個屬性名叫 dataProvider ,這個屬性能夠提供一個數據提供者的示例并且可以顯示所提供的數據,即使用 yii/grid/GridView::columns 屬性的一組列配置,在一個表格中渲染每一行數據。

例如,

use yii/grid/GridView;echo yii/grid/GridView::widget(['dataProvider' => $dataProvider,]);

一、表格列

表格的列是通過 GridView 配置項中的 yii/grid/GridView::columns 屬性配置的.

<?phpuse yii/grid/GridView;echo GridView::widget(['dataProvider' => $dataProvider,//表格列值搜索功能,注意一定要配合attribute才會顯示//$searchModel = new ArticleSearch();'filterModel' => $searchModel,//重新定義分頁樣式'layout'=> '{items}<div class="text-right tooltip-demo">{pager}</div>','pager'=>[//'options'=>['class'=>'hidden']//關閉分頁'firstPageLabel'=>"First",'prevPageLabel'=>'Prev','nextPageLabel'=>'Next','lastPageLabel'=>'Last',]'columns' => [['class' => 'yii/grid/SerialColumn'],//序列號從1自增長// 數據提供者中所含數據所定義的簡單的列// 使用的是模型的列的數據'id','username',// 更復雜的列數據['class' => 'yii/grid/DataColumn', //由于是默認類型,可以省略 'value' => function ($data) {return $data->name; // 如果是數組數據則為 $data['name'] ,例如,使用 SqlDataProvider 的情形。},],['label'=>'標題','value' => 'title'],['label'=>'文章內容','format' => 'html','value' => 'content'],['label'=>'文章類別', /*'attribute' => 'cid',產生一個a標簽,點擊可排序*/ 'value' => 'cate.cname' //關聯表],[//動作列yii/grid/ActionColumn //用于顯示一些動作按鈕,如每一行的更新、刪除操作。'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' => '你確定要刪除文章嗎?',]]);}, ],],],]);?>

1. 處理時間

數據列的主要配置項是 yii/grid/DataColumn::format 屬性。
它的值默認是使用 /yii/i18n/Formatter 應用組件。

['label'=>'更新日期','format' => ['date', 'php:Y-m-d'],'value' => 'updated_at'],//or[//'attribute' => 'created_at','label'=>'更新時間','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. 數據列有鏈接

['attribute' => 'title','value' => function ($model, $key, $index, $column) {return Html::a($model->title, ['article/view', 'id' => $key]);},'format' => 'raw',],

4. 數據列顯示枚舉值(男/女)

['attribute' => 'sex', 'value'=>function ($model,$key,$index,$column){return $model->sex==1?'男':'女'; },//在搜索條件(過濾條件)中使用下拉框來搜索'filter' => ['1'=>'男','0'=>'女'],//or'filter' => Html::activeDropDownList($searchModel,'sex',['1'=>'男','0'=>'女'],['prompt'=>'全部'])],['label'=>'產品狀態', 'attribute' => 'pro_name', 'value' => function ($model) {$state = ['0' => '未發貨','1' => '已發貨','9' => '退貨,已處理',];return $state[$model->pro_name];},'headerOptions' => ['width' => '120'] ]


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产视频丨精品|在线观看| 91精品一区二区| 96pao国产成视频永久免费| 午夜精品一区二区三区视频免费看| 国产一区玩具在线观看| 国模精品系列视频| 日韩福利伦理影院免费| 一区二区三区无码高清视频| 欧美日韩国产成人| 日韩av免费观影| 欧美日韩aaaa| 成人h视频在线观看播放| 色综合视频网站| 成人国产在线激情| 欧美成人精品一区二区三区| 欧美最近摘花xxxx摘花| 日本久久精品视频| 国产成人一区二| 亚洲精品一区二区三区不| 色狠狠av一区二区三区香蕉蜜桃| 久久久久久亚洲精品中文字幕| 亚洲新声在线观看| 亚洲色图在线观看| 欧美xxxx18国产| 国产精品香蕉在线观看| 国产精品一区二区av影院萌芽| 国产亚洲精品成人av久久ww| 欧美黑人一区二区三区| 欧美重口另类videos人妖| 国产中文字幕亚洲| 在线午夜精品自拍| 国产精品美女999| 欧美日韩美女在线| 亚洲色图偷窥自拍| 欧美色欧美亚洲高清在线视频| 国产午夜精品全部视频播放| 精品福利在线观看| 国产日韩精品入口| 国产精品h片在线播放| 欧美一级免费看| 欧美xxxx18性欧美| 久久久久久国产免费| 激情懂色av一区av二区av| 日韩电影在线观看免费| 亚洲精品永久免费| 亚洲激情 国产| 亚洲福利视频专区| 国产一区私人高清影院| 97免费中文视频在线观看| 国产精品久久久久77777| 欧美影院成年免费版| 91精品中国老女人| 国产97色在线| 中文字幕av一区二区三区谷原希美| 亚洲电影av在线| 日韩美女av在线| 日韩中文理论片| 北条麻妃久久精品| 成人黄色在线播放| 久久久免费电影| 久久亚洲精品国产亚洲老地址| 日本欧美中文字幕| 亚洲第一精品福利| 色婷婷久久av| 国产一区二区丝袜高跟鞋图片| 国产精品亚洲视频在线观看| 日本精品视频网站| 91禁外国网站| 欧美成人激情视频免费观看| 91日本视频在线| 亚洲网站在线播放| 欧美日韩在线视频一区二区| 亚洲国产日韩欧美在线动漫| 992tv在线成人免费观看| 日韩性生活视频| 亚洲欧美另类人妖| 一区二区三区精品99久久| 日韩av有码在线| 久久久国产一区二区| 精品国产一区二区在线| 亚洲欧美一区二区三区久久| 91老司机精品视频| 国产欧美一区二区白浆黑人| 欧美成人免费在线观看| 亚洲日本aⅴ片在线观看香蕉| 尤物yw午夜国产精品视频| 欧美激情国产高清| 欧美天堂在线观看| 色综合久久精品亚洲国产| 国产精品中文在线| 2019av中文字幕| 久久男人资源视频| 亚洲欧美国产精品| 亚洲毛茸茸少妇高潮呻吟| 国产精品99久久久久久久久| 亚洲伊人成综合成人网| 国产精品99久久久久久人| 在线日韩av观看| 成人精品在线视频| 午夜免费久久久久| 亚洲人精品午夜在线观看| 奇米四色中文综合久久| 亚洲成人久久久久| 亚洲国产精品久久久| 亚洲欧美国内爽妇网| 国产精品爱啪在线线免费观看| 日韩成人av在线| 国产mv久久久| 精品国产欧美一区二区五十路| 91视频-88av| 国产精品美女www| 国产精品专区一| 欧美专区第一页| 国产一区深夜福利| 中文字幕国产亚洲| 国产综合香蕉五月婷在线| 欧美xxxx做受欧美| 国产精品视频专区| 久久人人爽人人爽人人片av高请| 亚洲精品欧美极品| 久久久国产精品一区| 亚洲乱码国产乱码精品精| 国产在线观看精品一区二区三区| 亚洲欧美在线第一页| 亚洲精品美女久久| 国产a∨精品一区二区三区不卡| 久久久久久成人| 日日狠狠久久偷偷四色综合免费| 亚洲精品黄网在线观看| 久久久精品国产| 91精品国产91久久久久久久久| 国产91露脸中文字幕在线| 久久全国免费视频| 国产精品色午夜在线观看| 久久综合网hezyo| 久久夜色精品国产欧美乱| 91久久久亚洲精品| 92裸体在线视频网站| 伊人伊成久久人综合网站| 国产精品视频在线播放| 色噜噜狠狠色综合网图区| 美日韩在线视频| 91热福利电影| 2019中文字幕免费视频| 成人久久精品视频| 国产精品999| 国产成人精品久久二区二区91| 亚洲精品www久久久久久广东| 久久综合五月天| 亚洲bt欧美bt日本bt| 国产噜噜噜噜久久久久久久久| 亚洲a成v人在线观看| 91精品视频在线免费观看| 久久久精品国产一区二区| 在线电影欧美日韩一区二区私密| 欧美丰满少妇xxxxx做受| 91社区国产高清| 免费av一区二区| 日韩极品精品视频免费观看| 欧美精品国产精品日韩精品| 欧美成人高清视频| 中文字幕久精品免费视频| 亚洲欧美日本伦理| 91久久久久久|