GridView Widget
GridView Widget
Change title of a column name.
For this, change the model, example:
public function attributeLabels() {
return [
'id' => 'ID',
'naam' => 'examennaam',
'datum_van' => 'van',
'datum_tot' => 'tot',
'actief' => 'actief',
];
}
The database column 'datum_van' will be showed as 'van'.
ActionColumn show a view conditional
[
'class' => 'yii\grid\ActionColumn',
'contentOptions' => ['style' => 'width:400px; white-space: normal;'],
'header'=>'Actions',
'template' => '{view} {update} {delete}',
'visibleButtons'=>[
'view'=> function($model){
return $model->status!=1;
},
]
],
ActionColumn add own function/controller (copy)
[
'class' => 'yii\grid\ActionColumn',
'template' => '{download} {view} {update} {delete}',
'buttons' => [
'download' => function ($url) {
return Html::a(
'<span class="glyphicon glyphicon-arrow-down"></span>',
['another-controller/anotner-action', 'id' => $model->id], // mag ook alleen url als je geen parameter wilt meegeven, dan hoef je geen array te maken.
[
'title' => 'Download',
'data-pjax' => '0',
]
);
},
],
],
// Alternatief, copy button, niet vergeten in template te te zetten
'buttons'=>[
'copy' => function ($url, $model, $key) {
return Html::a('<span class="glyphicon glyphicon-copy"></span>', ['copy', 'id'=>$model->id],['title'=>'Copy']);
},
],
Column Show Boolean as symbol
[
'attribute'=>'actief',
'contentOptions' => ['style' => 'width:10px; white-space: normal;'],
'format' => 'raw',
'value' => function ($data) {
$status = $data->actief ? '<span class="glyphicon glyphicon-ok"></span>' : '<span class="glyphicon glyphicon-minus"></span>';
return Html::a($status, '/rolspeler/toggle-actief?id='.$data->id);
}
],
Drop down in grid select
[
'attribute'=>'attribute name',
'filter'=>array("ID1"=>"Name1","ID2"=>"Name2"),
],
// of
[
'attribute'=>'attribute name',
'filter'=>ArrayHelper::map(Model::find()->asArray()->all(), 'ID', 'Name'),
],
// of
[
'attribute' => 'attribute_name',
'value' => 'attribute_value',
'filter' => Html::activeDropDownList(
$searchModel,
'attribute_name',
ArrayHelper::map(ModelName::find()->asArray()->all(), 'ID', 'Name'),
['class'=>'form-control','prompt' => 'Select Category']
),
],
Drop down in grid select