2016-10-14 3 views
0

Я делаю приложение учета затрат. И затем в случае, у меня есть успех, чтобы суммировать данные, но когда я хочу получить среднее значение, я получаю сообщение об ошибке. Я должен попробовать слишком много кода здесь, но ничего не получается. Как сделать, чтобы получить среднее значение из моих данных здесь?Среднее вычисление с помощью mapick 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, что было РЕШИТЬ !! Я уже сори, потому что я не совсем понимаю. Но теперь я знаю, где я должен поставить свой код. Откройся! –

Смежные вопросы