2016-09-16 71 views
0

我想在yii2网格视图中实现运行总数。我在下面尝试过,但我无法完全达到预期的结果。数据来自活动的数据提供者。在Yii2 gridview中累计/运行总数

$runningtotal = 0; 

echo GridView::widget([ 
'dataProvider' => $dataProvider, 
'filterModel' => $searchModel, 
'pjax' => true, 
'columns' => [ 

    [ 
     'class' => '\kartik\grid\DataColumn', 
     'attribute' => 'pax', 
     'format' => 'decimal', 
     'pageSummary' => true 
    ], 
    [ 
     'value' => function ($model, $key, $index, $widget) use($runningtotal){ 
      $runningtotal+= ($model->pax); 
      return $runningtotal; 
     }, 
     'class' => '\kartik\grid\DataColumn', 
     'label' => 'Running Total', 
     'attribute' => 'paxtotal', //'format' => 'decimal', 
    ], 
], 
]); 

我的挑战是在这个gridview上运行总数。

回答

1

这不起作用的原因是use通过值传递变量而不是引用。

'value' => function ($model, $key, $index, $widget) use (&$runningtotal) { 

为了通过参考使用&在一个变量传递