我正在尝试使用Yii2框架开发系统。
我在我的数据库中有数据,我想显示products
表中的所有数据。例如:
---------------------------------------------------------------------
**id** | **product** | **color** | **quantity** | **size** |
1 | t-shirt | red | 2 | L |
2 | t-shirt | blue | 3 | M |
3 | pants | black | 6 | M |
我想在index.php中将此数据显示给 kartik gridview 。但我希望按product
而不是id
显示数据,因此我的预期结果就像我的 index.php
product | quantity |
t-shirt | 5 |
pants | 6 |
我的预期结果避免,颜色和大小。它将所有相同的产品合并到gridview中的一列中。
我怎么能这样? 这是我在 index.php :
中的代码 <?php
use kartik\grid\GridView;
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn',
'header' => 'No',
],
[
'label' => 'product',
'value' => function($data) {
return $data->product;
}
],
[
'label' => 'quantity',
'value' => function($data) {
return $data->quantity;
}
],
['class' => 'yii\grid\ActionColumn'],
],
'toolbar' => [
['content' =>
Html::a('<i class="glyphicon glyphicon-repeat"></i>', ['index'], ['data-pjax' => false, 'class' => 'btn btn-default', 'title' => 'Reset Grid'])
],
'{export}',
'{toggleData}'
],
'panel' => [
'heading' => '<i class="glyphicon glyphicon-align-left"></i> <b>Products List</b>',
'before' => '', //IMPORTANT
],
]);
?>
如果我使用上面的代码,我得到的结果如下:
product | quantity |
t-shirt | 2 |
t-shirt | 3 |
pants | 6 |
任何帮助将不胜感激。感谢
答案 0 :(得分:0)
使用: http://www.yiiframework.com/doc-2.0/yii-data-sqldataprovider.html
在sql中使用group by,count ect ...
然后在GridView列中使用如下:
[
'label' => 'product',
'value' => function($data) {
return $data['product'];
},
],