您的位置:首页 > 编程语言 > PHP开发

Yii2 GridView 中对columns的定义

2018-04-10 08:44 246 查看
<?= 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(' <i class="fa fa-check-square text-success"></i> ','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
]);?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  yii2 gridview