Готовый пример вьюшки для подсчета суммы столбца в GridView. Foreach’ем перебираем все цены в нашей модели и закидываем в переменную. Активируем в опциях виджета 'showFooter' => true
, а в сам столбец еще подкинем нашу переменную с общей суммой 'footer' => $saleTotal
, короткий обряд сохранения и готово
P.S. Перфекционисты могут доработать код поместив перебор Foreach’ем в метод модели
<?php use yii\helpers\Html; use yii\grid\GridView; /* @var $this yii\web\View */ /* @var $dataProvider yii\data\ActiveDataProvider */ $this->title = 'Yii2 сумма по столбцу GridView'; $this->params['breadcrumbs'][] = $this->title; $saleTotal = 0; foreach ($dataProvider->models as $item ) { $saleTotal += (empty($item->sale)) ? 0 : $item->sale; } ?> <div> <h1><?= Html::encode($this->title) ?></h1> <?= GridView::widget( [ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'showFooter' => true, 'columns' => [ [ 'class' => 'yii\grid\SerialColumn' ], 'id', 'name:text:Наименование', [ 'attribute' => 'sale', 'contentOptions' => ['class' => 'text-right',], 'format' => 'currency', 'footer' => Yii::$app->formatter->asCurrency($saleTotal), 'footerOptions' => ['class' => 'text-right',], 'value' => 'sale', ], ['class' => 'yii\grid\ActionColumn'] ], ] ); ?> </div>