Yii2 gridview 自定义值
Yii2 gridview custom value
<?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 } ?>
我使用上面的代码计算了一个月内的产品总数和总小时数。目前我使用 table 结构来显示数据。上面的数据可以用yii2 gridview显示吗?
谢谢。
参见Data Providers section of Yii2 documentation。您可以创建查询对象并使用 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'
]
]);
?>
<?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 } ?>
我使用上面的代码计算了一个月内的产品总数和总小时数。目前我使用 table 结构来显示数据。上面的数据可以用yii2 gridview显示吗?
谢谢。
参见Data Providers section of Yii2 documentation。您可以创建查询对象并使用 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'
]
]);
?>