我正在尝试根据计算的子值计算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
,但这似乎无效。
答案 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
],
],
]); ?>