6
votes

I want to make a closed dropdownlist values in the Gridview widget of YII2 framework. the code i have now:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [ //only fields name!
        ['class' => 'yii\grid\SerialColumn'],

        'id',
        'title',
        'statusId',
        'categoryId',
       ['class' => 'yii\grid\ActionColumn'],
    ],
]); ?>

and statudId should be one of 3 possible values. (1-open, 2-in progress, 3-closed)

2

2 Answers

15
votes

Hi the answer is simple from what you think.

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel'  => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],

            'id',
            'title',
            //don't use this:
            //'statusId',
            //use this instead:
            [
                'attribute' => 'statusId',
                'filter'    => [ "1"=>"open", "2"=>"in progress", "3"=>"closed" ]
            ],
            ['class' => 'yii\grid\ActionColumn'],
        ],
    ]); ?>
0
votes

That's how you need to do it:

[
                'attribute'=>'column_name',
                'label'=>'LABEL OF COLUMN',
                'filter'=>array("first"=>"first","second"=>"second"), // you can read from database directly
                'value' => function ($data) {
                    return $data->column_name;
                }
            ],