全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

yii2-GridView在开发中常用的功能及技巧总结

数据网格或者说 GridView 小部件是Yii中最强大的部件之一。它有一个属性名叫 dataProvider ,这个属性能够提供一个数据提供者的示例并且可以显示所提供的数据,即使用 yii\grid\GridView::columns 属性的一组列配置,在一个表格中渲染每一行数据。

例如,

use yii\helpers\Html;
use yii\grid\GridView;													  
<?= GridView::widget([
	'dataProvider' => $dataProvider,
	'filterModel' => $searchModel,
	'columns' => [
		['class' => 'yii\grid\SerialColumn'],
		'id',
]);?>

一、表格列

表格的列是通过 GridView 配置项中的 yii\grid\GridView::columns 属性配置的.

<?php
use 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'] 
]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# yii2  # gridview  # 样式  # gridview操作  # Yii中CArrayDataProvider和CActiveDataProvider区别实例分析  # 浅析Yii2中GridView常见操作  # yii2.0之GridView自定义按钮和链接用法  # Yii2 GridView实现列表页直接修改数据的方法  # 浅析Yii2 gridview实现批量删除教程  # 浅析Yii2 GridView实现下拉搜索教程  # 浅析Yii2 GridView 日期格式化并实现日期可搜索教程  # yii2使用GridView实现数据全选及批量删除按钮示例  # yii2中结合gridview如何使用modal弹窗实例代码详解  # yii2使用gridView实现下拉列表筛选数据  # Yii2.0小部件GridView(两表联查/搜索/分页)功能的实现代码  # YII2框架中ActiveDataProvider与GridView的配合使用操作示例  # 分页  # 的是  # 更新时间  # 才会  # 只需要  # 或者说  # 所提供  # 提供一个  # 则为  # 大家多多  # 搜索功能  # 所含  # 有一个  # 下拉框  # div  # items  # demo  # tooltip  # text  # layout 


相关文章: 如何通过wdcp面板快速创建网站?  制作农业网站的软件,比较好的农业网站推荐一下?  如何挑选优质建站一级代理提升网站排名?  制作网站的模板软件,网站怎么建设?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  如何选择靠谱的建站公司加盟品牌?  建站之星24小时客服电话如何获取?  建站之星2.7模板快速切换与批量管理功能操作指南  公众号网站制作网页,微信公众号怎么制作?  清除minerd进程的简单方法  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  如何通过.red域名打造高辨识度品牌网站?  如何快速搭建虚拟主机网站?新手必看指南  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  javascript基本数据类型及类型检测常用方法小结  建站之星后台管理系统如何操作?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  如何用免费手机建站系统零基础打造专业网站?  ,在苏州找工作,上哪个网站比较好?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何在建站主机中优化服务器配置?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  网站app免费制作软件,能免费看各大网站视频的手机app?  大连 网站制作,大连天途有线官网?  全景视频制作网站有哪些,全景图怎么做成网页?  活动邀请函制作网站有哪些,活动邀请函文案?  学校为何禁止电信移动建设网站?  专业公司网站制作公司,用什么语言做企业网站比较好?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Swift中switch语句区间和元组模式匹配  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  建站之星Pro快速搭建教程:模板选择与功能配置指南  怀化网站制作公司,怀化新生儿上户网上办理流程?  详解jQuery停止动画——stop()方法的使用  高防服务器租用首荐平台,企业级优惠套餐快速部署  建站之星客服服务时间及联系方式如何?  深圳网站制作案例,网页的相关名词有哪些?  学校建站服务器如何选型才能满足性能需求?  如何通过VPS建站实现广告与增值服务盈利?  小型网站制作HTML,*游戏网站怎么搭建?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  c# 服务器GC和工作站GC的区别和设置  寿县云建站:智能SEO优化与多行业模板快速上线指南  如何在Windows虚拟主机上快速搭建网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。