Yii2 Gridview列摘要基于计算的子值

时间:2018-06-07 07:27:28

标签: gridview yii2

我正在尝试根据计算的子值计算GridView中的列摘要。如何实现这一目标?

在视图中:

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'showFooter' => true,
        'columns' => [
            [
                'header' => 'Any header',
                'value' => function ($model){return $model->sumChildvalue();},
                'footer' => 'VALUE SHOULD BE CALCULATED HERE...',

            ],
        ],
    ]); ?>

我相信我可以在模型中运行一个函数,为sumChildvalue()中的每个模型重新计算$dataProvider,但这似乎无效。

1 个答案:

答案 0 :(得分:0)

您可以从外部传递值,可以在启动GridView :: widget之前计算,因此您可以在之前迭代$ dataProvider-&gt;模型。

<?php
$footerValue = 0;
foreach ($dataProvider->models as $model) {
    $footerValue += $model->value;
}
?>

<?= GridView::widget([
        'dataProvider' => $dataProvider,
        'filterModel' => $searchModel,
        'showFooter' => true,
        'columns' => [
            [
                'header' => 'Any header',
                'value' => function ($model){
                      return $model->sumChildvalue();
                 },
                'footer' => $footerValue, // Pass the value here

            ],
        ],
    ]); ?>