@MarkLb

Как сделать dropdown-input вместо текстового в yii\grid\SerialColumn Yii2?

Здравствуйте. Возникла проблема, дело в том что хочу чтобы в yii\grid\SerialColumn был не input с типом text, а dropdown, чтобы можно было выбрать только конкретные значения. Т.е. сама ячейка представляет собой ячейку статусов, и вручную имя статуса вводить очень неудобно, поэтому лучше предоставлять dropdownlist.

Как это можно реализовать?

Визуальный пример:

С input(как есть):
zQWu4UC.jpg

С select(как нужно):
ZFdE9Uf.jpg
  • Вопрос задан
  • 210 просмотров
Решения вопроса 2
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
['attribute'=>'someAttribute','filter'=>[1,2,4,5,6,'вася','Зеленый']]

Это для yii\grid\DataColumn, для yii\grid\SerialColumn дропдаун не предусмотрен, так как смысла в этом нет. Да и обычного input type text там нет, так как нет смысла в нем. Это просто нумерация строк. И зачем это нужно не понятно. Но Вы в праве снести нафиг yii\grid\SerialColumn и сделать через yii\grid\DataColumn или переопределить метод renderFilterCell() у yii\grid\SerialColumn, например сделав свой класс, унаследовав от yii\grid\SerialColumn и переопределив в нем renderFilterCell()
Ответ написан
Комментировать
Akdmeh
@Akdmeh
PHP, Yii2, Music
['attribute'=>'status',
            'label'=>'Статус',
            'value'=>function($model) {
                return $model->status; //тут доработайте вывод
            },
                                                                       //searchModel - может иметь другое, ваше название
            'filter' => Html::activeDropDownList($searchModel, 'status', [
                              ''=>'Все',
                              'new'=>'Новый',
                              'delivered'=>'Доставленный',
                              'cancelled'=>'Отказанные']),
            ],
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы