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

例如,

use yii\helpers\Html;
use yii\grid\GridView;													  
<"htmlcode">
<"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' => '你确定要删除文章吗?',]
          ]
        );
       },           
      ],
     ],
    
  ],
]);
"htmlcode">
[
 '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'] 
]

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

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

P70系列延期,华为新旗舰将在下月发布

3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。

而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?

根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。