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

이것은 이미 대답 질문이었고 정답이었다,하지만 난 당신이 그림 아웃하기를 수없는 생각 해결책.

이제보기 페이지에이 코드를 추가하고

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

당신에게 @Nitin 감사하십시오, 그 해결되었다! 나는 완전히 이해하지 못하기 때문에 전에 soryy 다. 하지만 지금 내가 어디에 내 코드를 넣어야하는지 알고있다. 너! –