我有一个基于数组的查询:
$modelPipe = Pipe::find()
->select([
"size",
"container",
"seal",
"concat(container_seal, '<br>' , size) as container_seal",
"count(size) as bundles",
"sum(piece) as pieces",
"bundle_group"
])
->where(['outgoing_pipe_id' => NULL])
->groupBy(['bundle_group'])
->orderBy(['bundle_group' => SORT_ASC])
->all();
查询结果是这样的
+-----------------------+--------------------------------------------------+---------+--------+--------------+
| size | container_seal | bundles | pieces | bundle_group |
+-----------------------+--------------------------------------------------+---------+--------+--------------+
| 35 x 35 x 0.85 x 6000 | EITU1268671/ EMCCSQ5920<br>35 x 35 x 0.85 x 6000 | 24 | 2400 | 1 |
| 15 x 35 x 0.75 x 6000 | EITU1268671/ EMCCSQ5920<br>15 x 35 x 0.75 x 6000 | 20 | 2000 | 2 |
| 35 x 35 x 0.85 x 6000 | EITU1374987/ EMCCSQ6086<br>35 x 35 x 0.85 x 6000 | 24 | 2400 | 3 |
| 15 x 35 x 0.75 x 6000 | EITU1374987/ EMCCSQ6086<br>15 x 35 x 0.75 x 6000 | 20 | 2000 | 4 |
| 35 x 35 x 0.75 x 6000 | EITU1842100/ EMCCSQ6096<br>35 x 35 x 0.75 x 6000 | 18 | 1800 | 5 |
| 15 x 35 x 0.75 x 6000 | EITU1842100/ EMCCSQ6096<br>15 x 35 x 0.75 x 6000 | 34 | 3400 | 6 |
| 35 x 35 x 0.75 x 6000 | DRYU9850060/ EMCCSQ6056<br>35 x 35 x 0.75 x 6000 | 18 | 1800 | 7 |
| 15 x 35 x 0.75 x 6000 | DRYU9850060/ EMCCSQ6056<br>15 x 35 x 0.75 x 6000 | 34 | 3400 | 8 |
| 35 x 35 x 0.75 x 6000 | DFSU6646389/ EMCCSQ6626<br>35 x 35 x 0.75 x 6000 | 18 | 1800 | 9 |
| 15 x 35 x 0.75 x 6000 | DFSU6646389/ EMCCSQ6626<br>15 x 35 x 0.75 x 6000 | 34 | 3400 | 10 |
| 35 x 35 x 0.75 x 6000 | TCLU4970557/ EMCCSQ6006<br>35 x 35 x 0.75 x 6000 | 18 | 1800 | 11 |
| 15 x 35 x 0.75 x 6000 | TCLU4970557/ EMCCSQ6006<br>15 x 35 x 0.75 x 6000 | 34 | 3400 | 12 |
| 35 x 35 x 0.75 x 6000 | FCIU9214153/ EMCCSQ6556<br>35 x 35 x 0.75 x 6000 | 24 | 2400 | 13 |
| 15 x 35 x 0.85 x 6000 | FCIU9214153/ EMCCSQ6556<br>15 x 35 x 0.85 x 6000 | 22 | 2200 | 14 |
| 35 x 35 x 0.75 x 6000 | DFSU6912998/ EMCCSQ6536<br>35 x 35 x 0.75 x 6000 | 24 | 2400 | 15 |
| 15 x 35 x 0.85 x 6000 | DFSU6912998/ EMCCSQ6536<br>15 x 35 x 0.85 x 6000 | 22 | 2200 | 16 |
| 35 x 35 x 0.85 x 6000 | TEMU6099067/ EMCCSQ6566<br>35 x 35 x 0.85 x 6000 | 4 | 400 | 17 |
| 35 x 35 x 0.75 x 6000 | TEMU6099067/ EMCCSQ6566<br>35 x 35 x 0.75 x 6000 | 20 | 2000 | 18 |
| 15 x 35 x 0.85 x 6000 | TEMU6099067/ EMCCSQ6566<br>15 x 35 x 0.85 x 6000 | 20 | 2000 | 19 |
| 35 x 35 x 0.85 x 6000 | EITU1153733/ EMCCSQ6956<br>35 x 35 x 0.85 x 6000 | 6 | 600 | 20 |
| 15 x 35 x 0.85 x 6000 | EITU1153733/ EMCCSQ6956<br>15 x 35 x 0.85 x 6000 | 17 | 1700 | 21 |
| 15 x 35 x 0.75 x 6000 | EITU1153733/ EMCCSQ6956<br>15 x 35 x 0.75 x 6000 | 30 | 3000 | 22 |
| 15 x 35 x 0.85 x 6000 | EITU1153733/ EMCCSQ6956<br>15 x 35 x 0.85 x 6000 | 1 | 8 | 23 |
| 15 x 35 x 0.75 x 6000 | EITU1153733/ EMCCSQ6956<br>15 x 35 x 0.75 x 6000 | 1 | 26 | 24 |
+-----------------------+--------------------------------------------------+---------+--------+--------------+
问题是,我需要使用复选框列表来解释上面的数据。 所以,我这样写:
<?php
$data = ArrayHelper::map($modelPipe, "bundle_group", "container_seal");?>
<?= $form->field($model, 'nomors_urut_per_bundle')
->label(false)
->checkboxList($data);
?>
我得到了这样的结果:
如何为我的用户获取视图,就像第一列是复选框的公用表一样?
+------------------------+------------------------ ----------------------+---------+--------+----- ---------+
|选中/取消选中全部 |尺寸|容器密封 |捆绑 |件 |捆绑组 | +------------------------+------------------------ ----------------------+---------+--------+----- ---------+
|选中/取消选中 | 35×35×0.85×6000 | EITU1268671/ EMCCSQ5920
35 x 35 x 0.85 x 6000 | 24 | 2400 | 2400 1 |
|选中/取消选中 | 15×35×0.75×6000 | EITU1268671/ EMCCSQ5920
15 x 35 x 0.75 x 6000 | 20 | 2000 | 2000 2 |
|选中/取消选中 | 35×35×0.85×6000 | EITU1374987/ EMCCSQ6086
35 x 35 x 0.85 x 6000 | 24 | 2400 | 2400 3 |
|选中/取消选中 | 15×35×0.75×6000 | EITU1374987/ EMCCSQ6086
15 x 35 x 0.75 x 6000 | 20 | 2000 | 2000 4 |
|选中/取消选中 | 35×35×0.75×6000 | EITU1842100/ EMCCSQ6096
35 x 35 x 0.75 x 6000 | 18 | 18 1800 | 1800 5 |
|选中/取消选中 | 15×35×0.75×6000 | EITU1842100/ EMCCSQ6096
15 x 35 x 0.75 x 6000 | 34 | 34 3400 | 3400 6 |
|选中/取消选中 | 35×35×0.75×6000 | DRYU9850060/ EMCCSQ6056
35 x 35 x 0.75 x 6000 | 18 | 18 1800 | 1800 7 |
|选中/取消选中 | 15×35×0.75×6000 | DRYU9850060/ EMCCSQ6056
15 x 35 x 0.75 x 6000 | 34 | 34 3400 | 3400 8 |
|选中/取消选中 | 35×35×0.75×6000 | DFSU6646389/ EMCCSQ6626
35 x 35 x 0.75 x 6000 | 18 | 18 1800 | 1800 9 |
|选中/取消选中 | 15×35×0.75×6000 | DFSU6646389/ EMCCSQ6626
15 x 35 x 0.75 x 6000 | 34 | 34 3400 | 3400 10 | 10
|选中/取消选中 | 35×35×0.75×6000 | TCLU4970557/ EMCCSQ6006
35 x 35 x 0.75 x 6000 | 18 | 18 1800 | 1800 11 | 11
|选中/取消选中 | 15×35×0.75×6000 | TCLU4970557/ EMCCSQ6006
15 x 35 x 0.75 x 6000 | 34 | 34 3400 | 3400 12 | 12
|选中/取消选中 | 35×35×0.75×6000 | FCIU9214153/ EMCCSQ6556
35 x 35 x 0.75 x 6000 | 24 | 2400 | 2400 13 |
|选中/取消选中 | 15×35×0.85×6000 | FCIU9214153/ EMCCSQ6556
15 x 35 x 0.85 x 6000 | 22 | 22 2200 | 2200 14 | 14
|选中/取消选中 | 35×35×0.75×6000 | DFSU6912998/ EMCCSQ6536
35 x 35 x 0.75 x 6000 | 24 | 2400 | 2400 15 | 15
|选中/取消选中 | 15×35×0.85×6000 | DFSU6912998/ EMCCSQ6536
15 x 35 x 0.85 x 6000 | 22 | 22 2200 | 2200 16 | 16
|选中/取消选中 | 35×35×0.85×6000 | TEMU6099067/ EMCCSQ6566
35 x 35 x 0.85 x 6000 | 4 | 400 | 17 | 17
|选中/取消选中 | 35×35×0.75×6000 | TEMU6099067/ EMCCSQ6566
35 x 35 x 0.75 x 6000 | 20 | 2000 | 2000 18 | 18
|选中/取消选中 | 15×35×0.85×6000 | TEMU6099067/ EMCCSQ6566
15 x 35 x 0.85 x 6000 | 20 | 2000 | 2000 19 | 19
|选中/取消选中 | 35×35×0.85×6000 | EITU1153733/ EMCCSQ6956
35 x 35 x 0.85 x 6000 | 6 | 600 | 20 |
|选中/取消选中 | 15×35×0.85×6000 | EITU1153733/ EMCCSQ6956
15 x 35 x 0.85 x 6000 | 17 | 17 1700 | 1700 21 | 21
|选中/取消选中 | 15×35×0.75×6000 | EITU1153733/ EMCCSQ6956
15 x 35 x 0.75 x 6000 | 30| 3000 | 3000 22 | 22
|选中/取消选中 | 15×35×0.85×6000 | EITU1153733/ EMCCSQ6956
15 x 35 x 0.85 x 6000 | 1 | 8 | 23 | 23
|选中/取消选中 | 15×35×0.75×6000 | EITU1153733/ EMCCSQ6956
15 x 35 x 0.75 x 6000 | 1 | 26 | 26 24 |
+------------------------+------------------------ ----------------------+---------+--------+----- ---------+
您可以在 GridView 中使用普通的
yii\grid\CheckboxColumn
列,只需使用 ['class' => 'yii\grid\CheckboxColumn']
http://www.yiiframework.com/doc-2.0/yii-grid-checkboxcolumn.html
最终您可以使用回调函数来管理适当的选项,例如:
echo GridView::widget([
'id' => 'griditems',
'dataProvider' => $dataProvider,
'columns' => [
.......
[
'class' => 'yii\grid\CheckboxColumn', 'checkboxOptions' => function($model) {
return ['value' => $model->your_value];
},
],
],
]);