Поменять значения в GridView

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Saha
Сообщения: 3
Зарегистрирован: 2019.07.23, 22:58

Поменять значения в GridView

Сообщение Saha »

Всем привет. Задача такая. Есть много много GridView. Нужно в столбце где значение 0 заменить его например на "не задано". Я знаю что в самом виджете значение можно заменить с помощью value или content. Но как это сделать быстро для всех GridView? Копаю в сторону поведений или событий но пока безуспешно.
Saha
Сообщения: 3
Зарегистрирован: 2019.07.23, 22:58

Re: Поменять значения в GridView

Сообщение Saha »

это ведь нужно для каждого GridView указывать? нужно как то системно заменить сразу для всех.
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Поменять значения в GridView

Сообщение Alexum »

Глобально для всех можно через контейнер зависимостей, прописав нужные настройки в конфигурационном файле приложения (через свойство 'container').

Код: Выделить всё

return  [
 ...
 'container' => [
        'definitions' => [
            'yii\grid\GridView' => ['emptyCell' => 'не задано']
        ],
    ],
 ...
 ]   
Saha
Сообщения: 3
Зарегистрирован: 2019.07.23, 22:58

Re: Поменять значения в GridView

Сообщение Saha »

Alexum писал(а): 2019.07.24, 09:37 Глобально для всех можно через контейнер зависимостей, прописав нужные настройки в конфигурационном файле приложения (через свойство 'container').

Код: Выделить всё

return  [
 ...
 'container' => [
        'definitions' => [
            'yii\grid\GridView' => ['emptyCell' => 'не задано']
        ],
    ],
 ...
 ]   
Немного не то. Почему то ваша запись меняла только заголовки в столбцах таблицы. То что находится между тегом <thead></thead>. Спасибо что направили в нужное направление. Помогло это

Код: Выделить всё

 'container' => [
        'definitions' => [
            'yii\grid\GridView' => [
                'beforeRow'=>function($data){
                    if ($data->population==NULL) {
                        $data->population = 'нет данных';
                    }
                    
                },              
            ]
        ],
    ],
Ответить