Yii2 сумма по столбцу GridView

Готовый пример вьюшки для подсчета суммы столбца в 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>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *