2016-10-14 4 views
0

私はコスト会計アプリケーションを作成しています。そして、あるケースではデータを集計するのに成功しましたが、平均を求めたい場合はエラーが発生します。私はここであまりにも多くのコードを試しなければならないが、何も結果はない。 ここから自分のデータの平均を得るにはどうすればいいですか?kartik gridview(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

答えて

0

は、これはすでに、質問に答えて正解でしたが、私はあなたが理解アウトすることはできないと思いますました溶液。

は、今すぐあなたのビューページにこのコードを追加し、それを解決した、あなたに@Nitinありがとう

<?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> 
+0

を試してみてください!! 私は完全に理解していないので、前にsoryyです。しかし、今私は私のコードを入れなければならないことを知っています あなたはありがとう! –