@hollanditkzn

Как добавить новые теги в таблицу в gridView?

У меня есть код в gridView, но на примере https://dev-tips.ru/blog/post/gridview-v-yii2-pros... было указано два варианта как yes и no, я немного их преобразовал и получилось у меня вот такой код
[
                'attribute' => 'status',
                'format' => 'raw',
                'value' => function($model, $key, $index, $column){
                    $active = $model->{$column->attribute} == 0;
                    return Html::tag(
                        'div',
                        $active ? 'Новый' : 'В работе',
                        [
                            'class' => 'label label-'.($active ? 'primary' : 'success'),
                        ]
                    );      
                },
                'headerOptions' => ['width' => '50'],
            ],

Но мне нужно не 2 параметра а примерно 9 тегов
Пробовал сделать через swich
switch ($status) {
                        case '0':
                            'Новый'
                            break;
                    }

Но потом догнал что так не прокатит и тут я как назначить несколько тегов?
Или это проще сделать через jquery?
  • Вопрос задан
  • 232 просмотра
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
В модели создаёте публичный, статический метод, где все девять параметров прописываете.
В gridview вызываете этот метод и получаете выпадающий список
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Oboronitel
Здравствуйте.
Попробуйте добавить к полую формат = 'raw'.
Это позволит выводить теги.
Привел пример ниже:
...
            'columns' => [
                [
                    'attribute' => 'id',
                    'value' => 'id',
                    'contentOptions' => ['width' => '20px'],
                ],
                [
                    'attribute' => 'name',
                    'format' => 'raw',
                    'value' => function ($data) {
                        $fieldValue = '<strong>'.$data->name.'</strong>';
                        return $fieldValue;
                    },
                    'contentOptions' => ['width' => '150px'],
                ],
...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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