从kartik gridview(YII2)

时间:2016-10-14 08:43:14

标签: yii2

我正在制作成本会计应用程序。然后在一个案例中,我成功地对数据求和,但是当我想要得到平均值时,我得到一个错误。我必须在这里尝试太多代码,但没有结果。 如何在此处获取我的数据的平均值?

这是我的观点:

<?php

use yii\helpers\Html;
use yii\widgets\DetailView;
use kartik\grid\GridView;
use yii\data\ActiveDataProvider;
use backend\models\Penerimaan;
use yii\web\App;
/* @var $this yii\web\View */
/* @var $model backend\models\Triwulan */

$this->title = $model->rm_code;
$this->params['breadcrumbs'][] = ['label' => 'Triwulan', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="triwulan-view">

    <h1><?= Html::encode($this->title) ?></h1>

    <p>
        <?= Html::a('Update', ['update', 'id' => $model->rm_code], ['class' => 'btn btn-primary']) ?>
        <?= Html::a('Delete', ['delete', 'id' => $model->rm_code], [
            'class' => 'btn btn-danger',
            'data' => [
                'confirm' => 'Are you sure you want to delete this item?',
                'method' => 'post',
            ],
        ]) ?>
    </p>

    <?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            'rm_code',
            'deskripsi_barang',
        ],
    ]) ?>

       <?= GridView::widget([
              'dataProvider'=>new yii\data\ActiveDataProvider([

                 'pagination'=>false,
                 'query'=>$model->getPenerimaans(),

              ]),
              'columns'=>[
                ['class' => 'kartik\grid\SerialColumn'],


                 [
                   'attribute'=>'bulan',
                       'pageSummary' => 'Jumlah',
                     ],                      [
         'attribute' => 'price' ,
      //   'pageSummary' => 20 - 20 - $model->idDhs->idMatakuliah->sks,
         'pageSummary' =>(true),
           'value' => function ($model) {
         if($model)
            return  $model->price;
         }
     ],
               //      ['class' => 'kartik\grid\ActionColumn'],

               //   'product',
                 // 'qty'
              ],
              'showPageSummary' => true,


          ])
          ?> Harga rata-rata barang adalah:

  <?php
  //$db= Yii::$app->db;
//  $command=$db->createCommand('Select * from penerimaan where id=408');
//  $penerimaan = $command->queryAll();

//  foreach ($penerimaan as $penerimaans) {
  //  echo $penerimaans['price'];
//  } echo "<br>";
//  $users = Yii::$app->db->createCommand('SELECT * FROM penerimaan where rm_code=id')->queryAll();
//$connection= Yii::$app->db;
//  $users= $connection->createCommand('SELECT * FROM penerimaan where rm_code=id')->execute();
//  var_dump($users);
//  $participantProvider = new ActiveDataProvider([
// 'query' => Penerimaan::find()->where('price',$model),
  //]);
//  $hasil = 14 /$participantProvider->getTotalCount();
//  echo $hasil;echo "</br>";
?>
  </div>

</div>

Image

1 个答案:

答案 0 :(得分:0)

这是已经回答的问题并且是正确答案,但我认为您无法弄清楚解决方案。

现在在您的视图页面上添加此代码并尝试

<?php

use yii\helpers\Html;
use yii\widgets\DetailView;
use kartik\grid\GridView;
use yii\data\ActiveDataProvider;
use backend\models\Penerimaan;
use yii\web\App;
/* @var $this yii\web\View */
/* @var $model backend\models\Triwulan */

$this->title = $model->rm_code;
$this->params['breadcrumbs'][] = ['label' => 'Triwulan', 'url' => ['index']];
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="triwulan-view">

    <h1><?= Html::encode($this->title) ?></h1>

    <p>
        <?= Html::a('Update', ['update', 'id' => $model->rm_code], ['class' => 'btn btn-primary']) ?>
        <?= Html::a('Delete', ['delete', 'id' => $model->rm_code], [
            'class' => 'btn btn-danger',
            'data' => [
                'confirm' => 'Are you sure you want to delete this item?',
                'method' => 'post',
            ],
        ]) ?>
    </p>

    <?= DetailView::widget([
        'model' => $model,
        'attributes' => [
            'rm_code',
            'deskripsi_barang',
        ],
    ]) ?>
 <?php
    $myAverage = 0;
    $myTot  =0;
    $myCnt = 0;
    $data = $dataProvider->getModels();

    foreach ($data as $key => $value) {
        $myTot += $value['price'];
        $myCnt++;
    }
    if ($myCnt>0){  
      $myAverage = $myTot/$myCnt;
    }
   echo $myAverage;  // your average displayed herre, you can place it wherever you want.
      ?>

       <?= GridView::widget([
              'dataProvider'=>new yii\data\ActiveDataProvider([

                 'pagination'=>false,
                 'query'=>$model->getPenerimaans(),

              ]),
              'columns'=>[
                ['class' => 'kartik\grid\SerialColumn'],


                 [
                   'attribute'=>'bulan',
                       'pageSummary' => 'Jumlah',
                ],                     
               [
                'attribute' => 'price' ,
                'pageSummary' =>(true),
                'value' => function ($model) {
                        if($model)
                         return  $model->price;
                        }
               ],

            ],
              'showPageSummary' => true,
         ])
      ?> 
   </div>
</div>