Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将总计添加到yii2栅格视图的底部_Php_Mysql_Yii2 - Fatal编程技术网

Php 如何将总计添加到yii2栅格视图的底部

Php 如何将总计添加到yii2栅格视图的底部,php,mysql,yii2,Php,Mysql,Yii2,我有一个网格视图,就像这样。在MySQL查询的帮助下计算列并相应显示 <?php $subquery = Adanalytics::find()-> select('id,ad_id,date_event,max(cpc) cpclick,max(cpv) cpview,max(impression) impression,max(view) view,max(clicks) clicks,visitor_ip,publisher_id')->

我有一个网格视图,就像这样。在MySQL查询的帮助下计算列并相应显示

    <?php
  $subquery = Adanalytics::find()->
            select('id,ad_id,date_event,max(cpc) cpclick,max(cpv) cpview,max(impression) impression,max(view) view,max(clicks) clicks,visitor_ip,publisher_id')->
            from('ad_analytics')->
            where(['publisher_id' =>  Yii::$app->user->identity->id ])->
            groupBy('ad_id,date_event,visitor_ip');
  $query=Adanalytics::find()->
        select('ad_id,date_event,sum(cpclick) total_click_cost,sum(cpview) total_view_cost,sum(impression) total_impression,sum(view) total_views,sum(clicks) total_clicks,publisher_id')->
        from(['t'=>$subquery])->
        groupBy('t.ad_id,t.date_event');
 ?>

    <?= GridView::widget([

    'dataProvider'=>new ActiveDataProvider([
      'query' => $query,
    ]),
    'filterModel' => $searchModel,
    'columns' => [
        ['class' => 'yii\grid\SerialColumn'],
        'ad_id',
        'total_impression',
        'total_views',
        'total_clicks',
        'total_click_cost',
        'total_view_cost',
        'date_event',


        ['class' => 'yii\grid\ActionColumn'],
    ],
]); ?>
要做到这一点,我的控制器中有这样的代码

  public function actionIndex()
    {
        $searchModel = new Adanalytics2Search();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
        $grandTotal = [];
        foreach ($dataProvider->getModels() as  $value) {
          // var_dump($value);
          // exit();
            $grandTotal['total_click_cost'] += $value['total_click_cost'];
            $grandTotal['total_view_cost'] += $value['total_view_cost'];
        }
        //var_dump($dataProvider);
         return $this->render('index', [
             'searchModel' => $searchModel,
             'dataProvider' => $dataProvider,
             'grandTotal'  => $grandTotal,
         ]);
    }
但它正在以这种方式产生错误

Undefined index: total_click_cost

我哪里做错了?或者有其他方法解决这个问题吗?

我强烈建议您使用katrik gridview。它可以更好地处理页面摘要,并实现许多其他用途。或者在gridview中添加'showPageSummary'=>true以显示列摘要

use kartik\grid\GridView;

// Create a panel layout for your GridView widget
echo GridView::widget([
'dataProvider'=> $dataProvider,
'filterModel' => $searchModel,
'columns' => $gridColumns,
'showPageSummary' => true
]);

类似的问题:

这解决了问题

这将在网格列中显示

            [
              'attribute'=>'total_impression',
              'pageSummary' => true
            ],
和在网格视图中

'showPageSummary' => true,

我收到此错误
设置未知属性:yii\grid\GridView::showPageSummary
安装Karthik网格视图后,我现在收到此错误'showPageSummary'=>false,
调用未知方法:yii\grid\SerialColumn::renderPageSummaryCell()
我已经通过这个
'showFooter'=>true启用了Karthik网格,但是总计列只是空的,没有任何值我看到了这个问题,但问题是实际的页面摘要不会显示,它只显示了一个没有任何值的空页脚
'showPageSummary' => true,