YII2 добавить столбец суммы в gridview

Как добавить столбец суммы в gridview?? У меня есть таблица с grant_amount и lcc_amount. Я хочу добавить грант и lcc и отобразить их в представлении сетки. Как это делается? Я уже успешно отобразил данные из таблицы в представлении сетки.

введите здесь описание изображения


person beginner    schedule 16.04.2015    source источник
comment
Значит, это просто сумма значений столбцов Sp Grant и Lcc?   -  person arogachev    schedule 16.04.2015


Ответы (1)


Вам нужно установить новый столбец и установить свойство value, label следующим образом:

'columns' => [
                ['class' => 'yii\grid\SerialColumn'],
                'id',
                ...
                'grant_amount',
                'lcc_amount',                    
                [
                    'label' => 'Sum',
                    'value' => function ($model) {
                        return $model->grant_amount + $model->lcc_amount;
                    }
                ],

Дополнительную информацию можно найти в документе.

person vitalik_74    schedule 16.04.2015
comment
Что сделать, чтобы работала сортировка и поиск по итоговой колонке. - person beginner; 17.04.2015
comment
Я думаю, это не то, что мне нужно .... можно ли добавить новую переменную в контроллер поиска и установить ее значение в lcc + грант? Как это сделать? - person beginner; 17.04.2015
comment
grant_amount и lcc_amount это поля одной таблицы? - person vitalik_74; 17.04.2015
comment
Я решил это, используя $dataProvider-›sort-›attributes['total'] = [ 'asc' =› ['(sp_grant + lcc)' =› SORT_ASC], 'desc' =› ['(sp_grant + lcc)' => SORT_DESC], ]; - person beginner; 17.04.2015
comment
@vitalik_74 Спасибо за решение. Но если я хочу, чтобы вычисленное значение сохранялось в модели, которая уже содержит столбец суммы в базе данных. Как я могу это сделать? Не могли бы вы мне помочь? - person Ragheb AlKilany; 25.11.2016