@AlexAll

Как в yii2 в gridview в format row убрать пустой option?

В gridview я сделал выпадающий список с помощью которого можно выводить опубликованные и не опубликованные посты

[
                'attribute' => 'status', 
                'format' => 'raw',
                'filter' => [
                    'off' => 'Не опубликована',
                    'on' => 'Опубликована',
                ],
                'headerOptions' => ['width' => '200'],
                'value' => function ($model, $key, $index, $column) {
                    $status = $model->status === 'on';
                    return \yii\helpers\Html::tag(
                        'span',
                        $status ? 'Опубликована' : 'Не опубликована',
                        [
                            'class' => 'label label-' . ($status ? 'success' : 'danger'),
                            
                        ]
                    );
                },
                
            ],


И в этом выпадающем списке выпадет еще и пустой option
<option value=""></option>
<option value="off" selected>Не опубликована</option>
<option value="on">Опубликована</option>

Как его исключить?
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Можно передать не массив, а строку в которой будет готовый html для ячейки фильтра, а там уж что хотите городите. Если интересно как это работает, то вот исходники:
https://github.com/yiisoft/yii2/blob/master/framew...
Как вариант можно создать свой yii\grid\DataColumn и переделать этот метод по своему желанию.

Но мне кажется сама цель не совсем адекватная. Вы выводите в таблицу все значения, а значит для них не задан фильтр, так что должен быть пустой вариант. Вы же не сможете выбрать все записи будете иметь или опубликованные или нет. Зачем забирать у пользователя функционал?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы