Я пытаюсь разработать систему с использованием фреймворка 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> <b>Products List</b>',
'before' => '', //IMPORTANT
],
]);
?>
и если я использую приведенный выше код, я получаю такой результат:
product | quantity |
t-shirt | 2 |
t-shirt | 3 |
pants | 6 |
Любая помощь будет оценена. Спасибо
Использование:
http://www.yiiframework.com/doc-2.0/yii-data-sqldataprovider.html
И в sql используйте group by, ect …
Затем в столбцах GridView используйте вот так:
[
'label' => 'product',
'value' => function($data) {
return $data['product'];
},
],
Других решений пока нет …