Необходимо в GridView в футере выводить сумму значений определенных столбцов в формате:
Сумма значений столбцов в GridView/Общая сумма значений.
Пример
У нас есть столбец "Просмотры". Всего 5 записей, суммарно их кол-во просмотров - 1000.
В GridView 2 записи, в сумме у них просмотров - 200.
На выходе имеем:
200/1000
Сумма значений столбцов в GridView - реализована.
Реализация
Класс:
class NumberColumn extends DataColumn
{
private $total = 0;
public function getDataCellValue($model, $key, $index)
{
$value = parent::getDataCellValue($model, $key, $index);
$this->total += $value;
return $value;
}
protected function renderFooterCellContent()
{
return $this->grid->formatter->format($this->total, $this->format);
}
}
Ячейка в columns GV:
[
'class' => \app\components\NumberColumn::class,
'attribute' => 'views',
],
Остаётся вывод общей суммы значений,
но чтобы применимы были фильтры.
Пример
У нас два столбца "Views" и "Country".
Записи:
1. V: 100, Country: RU.
2. V: 100, Country: RU.
3. V: 100, Country: RU.
4. V: 200, Country: USA.
В GridView, 2 записи(1, 2), включен фильтр Country=RU.
Итоговое число: 200/300.
Если бы фильтр не был бы включен, итог был бы: 200/500.
Каким образом этого можно добиться? По-сути, необходимо как-то подхватывать фильтры searchModel'и, либо проводить подсчёт в ней.