Yii2: отображение данных из Sql, имеющих одинаковое значение, в один столбец в сетке вида Kartik

Я пытаюсь разработать систему с использованием фреймворка 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. Но я хочу отобразить данные 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>&nbsp;&nbsp;<b>Products List</b>',
'before' => '', //IMPORTANT
],
]);
?>

и если я использую приведенный выше код, я получаю такой результат:

    product   |   quantity    |

t-shirt  |      2        |
t-shirt  |      3        |
pants    |      6        |

Любая помощь будет оценена. Спасибо

2

Решение

Использование:
http://www.yiiframework.com/doc-2.0/yii-data-sqldataprovider.html

И в sql используйте group by, ect …

Затем в столбцах GridView используйте вот так:

[
'label' => 'product',
'value' => function($data) {
return $data['product'];
},
],
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]