2017-12-14 5 views
0
<?php $sums = app\models\Sku3d::find()->select(["DATE_FORMAT(approvedate, '%m-%Y') as c_date", 'sum(totalhours) as total', 'count(sku) as sku']) 
       ->where(['status' => 'Approved'])->groupBy('c_date') 
       ->createCommand() 
       ->queryAll(); 
    foreach ($sums as $sum){ ?> 
<tr>  
<td><?=$sum['c_date'] ?></td> 
<td><?=$sum['sku'] ?></td> 
<td><?=$sum['total'] ?></td> 
</tr> 
    <?php } ?> 

上記のコードを使用して、1か月間の合計製品数と合計時間をカウントしました。私は現在、データを表示するためにテーブル構造を使用しています。上記のデータを表示するのにyii2 gridviewを使用できますか?Yii2 gridviewカスタム値

ありがとうございました。

答えて

1

Data Providers section of Yii2 documentationを参照してください。 Queryオブジェクトを作成し、ActiveDataProviderを使用するか、クエリ結果を配列に配置してArrayDataProviderを使用することができます。

<?php 
    $query = (new \yii\db\Query()) 
     ->select(["DATE_FORMAT(approvedate, '%m-%Y') as c_date", 'sum(totalhours) as total', 'count(sku) as sku']) 
     ->from('sku3d') 
     ->where(['status' => 'Approved']) 
     ->groupBy('c_date'); 

    $dataProvider = new ActiveDataProvider([ 
     'query' => $query, 
    ]); 

    echo GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'columns' => [ 
      'c_date:text:Month', 
      'total:text:Total hours', 
      'sku:text:Sku' 
     ] 
    ]); 
?> 
+0

非常にありがとうございます:) –

関連する問題