Yii2 GridView 中对columns的定义

来源:互联网 发布:java实现序列化的代码 编辑:程序博客网 时间:2024/05/16 10:58
<?= GridView::widget([    'dataProvider' => $dataProvider,    'filterModel' => $searchModel,    'columns' => [        ['class' => 'yii\grid\SerialColumn',         'header'=>'序号',         'headerOptions'=>['width'=>'50'],        ],        'username',        'userphone',        [            'class' => 'yii\grid\ActionColumn',            'template'    => '{verify} {minus} {view}',            'header'=>'操作','headerOptions'=>['width'=>'120'],            'buttons'=>[                'verify'=> function($url,$model){                    return Html::a('&nbsp;<i class="fa fa-check-square text-success"></i>&nbsp;','verfiy.html?id='.$model->id, [                            'title' => Yii::t('app', '通过审核'),                        ]);                },            ],            'controller'=>'user',        ],    ]]); ?>

其中对时间格式化

[    'attribute'=>'logintime',    'format'=>['date','Y年M月d日 H:m:s']],

格式化Ip 和上面差不多

[    'attribute'=>'loginip',    'content'=>function($data){        return long2ip($data->loginip);    }],

利用系统参数展示

[    'attribute'=>'type',    'content'=>function($data){        return Yii::$app->params['type'][$data->type];    }],

增加过滤下拉,这个主要是看filter,

<?= GridView::widget([    'dataProvider' => $dataProvider,    'filterModel' => $searchModel,    'columns' => [        ['class' => 'yii\grid\SerialColumn'],        'user_id',        [            'label' => 'status', // 可选 复写            'attribute' => 'status',            'filter' => Html::activeDropDownList($searchModel, 'status', \common\models\Token::getStatus(), ['class' => 'form-control']),            'value' => function ($data) {                return \common\models\Token::getStatus()[$data->status];            },        ],         'created_at:datetime',         'expired_at:datetime',        ['class' => 'yii\grid\ActionColumn'],    ],]); ?>

在models里面加上

public static function getStatus(){    return [        '' => '全部',        self::STATUS_ACTIVE => '正常',        self::STATUS_DELETE => '删除',    ];}

另外默认使用DataColumn,代表显示数据。DataColumn还有几个lei类似的如下:

  • ActionColumn 显示操作按钮等
  • CheckboxColumn 显示复选框
  • RadioButtonColumn 显示单选框
  • SerialColumn 显示行号

以下案例来自yii2china

  <?= GridView::widget([        'dataProvider' => $dataProvider,        'columns' => [            [                'class'=>'yii\grid\CheckboxColumn'            ],            'id',            'username',            [                'attribute'=>'create_time',                'format'=>['date', 'php:Y-m-d H:i:s']            ],            [                'attribute'=>'sex',                'value'=>function($data){                    return $data->sex == 1 ? '男' : '女';                }            ],            'province',            'city'        ],        'emptyText'=>'当前没有会员',        'emptyTextOptions'=>['style'=>'color:red;font-weight:bold'],        'layout'=>"{items}\n{pager}",        'showOnEmpty'=>false    ]);?>
原创粉丝点击