2017-05-30 6 views
0

でこのCheckBoxListのカスタマイズ:このYii2 - 私は、アレイベースのクエリを持ってYii2

よう
+-----------------------+--------------------------------------------------+---------+--------+--------------+ 
| 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 | 
+-----------------------+--------------------------------------------------+---------+--------+--------------+ 

をクエリの

$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(); 

結果を問題は、私はinterpratedのためのCheckBoxListを使用する必要があり、上記のデータ。 だから、私はこのように書く:

<?php 
    $data = ArrayHelper::map($modelPipe, "bundle_group", "container_seal");?> 

    <?= $form->field($model, 'nomors_urut_per_bundle') 
     ->label(false) 
     ->checkboxList($data); 
    ?> 

そして、私はこのようになった: image

どのように私は最初の列であるだけのような一般的な表がチェックボックスである私のユーザーに表示を得るすることができます?

お知らせください。 ありがとうございます。

+-----------------------+--------------------------------------------------+---------+--------+--------------+ 
| check/uncheck all | size     | container_seal         | bundles | pieces | bundle_group | 
+-----------------------+--------------------------------------------------+---------+--------+--------------+ 
| check/uncheck  | 35 x 35 x 0.85 x 6000 | EITU1268671/ EMCCSQ5920<br>35 x 35 x 0.85 x 6000 |  24 | 2400 |   1 | 
| check/uncheck  | 15 x 35 x 0.75 x 6000 | EITU1268671/ EMCCSQ5920<br>15 x 35 x 0.75 x 6000 |  20 | 2000 |   2 | 
| check/uncheck  | 35 x 35 x 0.85 x 6000 | EITU1374987/ EMCCSQ6086<br>35 x 35 x 0.85 x 6000 |  24 | 2400 |   3 | 
| check/uncheck  | 15 x 35 x 0.75 x 6000 | EITU1374987/ EMCCSQ6086<br>15 x 35 x 0.75 x 6000 |  20 | 2000 |   4 | 
| check/uncheck  | 35 x 35 x 0.75 x 6000 | EITU1842100/ EMCCSQ6096<br>35 x 35 x 0.75 x 6000 |  18 | 1800 |   5 | 
| check/uncheck  | 15 x 35 x 0.75 x 6000 | EITU1842100/ EMCCSQ6096<br>15 x 35 x 0.75 x 6000 |  34 | 3400 |   6 | 
| check/uncheck  | 35 x 35 x 0.75 x 6000 | DRYU9850060/ EMCCSQ6056<br>35 x 35 x 0.75 x 6000 |  18 | 1800 |   7 | 
| check/uncheck  | 15 x 35 x 0.75 x 6000 | DRYU9850060/ EMCCSQ6056<br>15 x 35 x 0.75 x 6000 |  34 | 3400 |   8 | 
| check/uncheck  | 35 x 35 x 0.75 x 6000 | DFSU6646389/ EMCCSQ6626<br>35 x 35 x 0.75 x 6000 |  18 | 1800 |   9 | 
| check/uncheck  | 15 x 35 x 0.75 x 6000 | DFSU6646389/ EMCCSQ6626<br>15 x 35 x 0.75 x 6000 |  34 | 3400 |   10 | 
| check/uncheck  | 35 x 35 x 0.75 x 6000 | TCLU4970557/ EMCCSQ6006<br>35 x 35 x 0.75 x 6000 |  18 | 1800 |   11 | 
| check/uncheck  | 15 x 35 x 0.75 x 6000 | TCLU4970557/ EMCCSQ6006<br>15 x 35 x 0.75 x 6000 |  34 | 3400 |   12 | 
| check/uncheck  | 35 x 35 x 0.75 x 6000 | FCIU9214153/ EMCCSQ6556<br>35 x 35 x 0.75 x 6000 |  24 | 2400 |   13 | 
| check/uncheck  | 15 x 35 x 0.85 x 6000 | FCIU9214153/ EMCCSQ6556<br>15 x 35 x 0.85 x 6000 |  22 | 2200 |   14 | 
| check/uncheck  | 35 x 35 x 0.75 x 6000 | DFSU6912998/ EMCCSQ6536<br>35 x 35 x 0.75 x 6000 |  24 | 2400 |   15 | 
| check/uncheck  | 15 x 35 x 0.85 x 6000 | DFSU6912998/ EMCCSQ6536<br>15 x 35 x 0.85 x 6000 |  22 | 2200 |   16 | 
| check/uncheck  | 35 x 35 x 0.85 x 6000 | TEMU6099067/ EMCCSQ6566<br>35 x 35 x 0.85 x 6000 |  4 | 400 |   17 | 
| check/uncheck  | 35 x 35 x 0.75 x 6000 | TEMU6099067/ EMCCSQ6566<br>35 x 35 x 0.75 x 6000 |  20 | 2000 |   18 | 
| check/uncheck  | 15 x 35 x 0.85 x 6000 | TEMU6099067/ EMCCSQ6566<br>15 x 35 x 0.85 x 6000 |  20 | 2000 |   19 | 
| check/uncheck  | 35 x 35 x 0.85 x 6000 | EITU1153733/ EMCCSQ6956<br>35 x 35 x 0.85 x 6000 |  6 | 600 |   20 | 
| check/uncheck  | 15 x 35 x 0.85 x 6000 | EITU1153733/ EMCCSQ6956<br>15 x 35 x 0.85 x 6000 |  17 | 1700 |   21 | 
| check/uncheck  | 15 x 35 x 0.75 x 6000 | EITU1153733/ EMCCSQ6956<br>15 x 35 x 0.75 x 6000 |  30 | 3000 |   22 | 
| check/uncheck  | 15 x 35 x 0.85 x 6000 | EITU1153733/ EMCCSQ6956<br>15 x 35 x 0.85 x 6000 |  1 |  8 |   23 | 
| check/uncheck  | 15 x 35 x 0.75 x 6000 | EITU1153733/ EMCCSQ6956<br>15 x 35 x 0.75 x 6000 |  1 |  26 |   24 | 
+-----------------------+--------------------------------------------------+---------+--------+--------------+ 

答えて

0

あなたはただ、最終的にあなたが例えば、適切なオプションを管理するためのコールバック関数を使用することができます['class' => 'yii\grid\CheckboxColumn']http://www.yiiframework.com/doc-2.0/yii-grid-checkboxcolumn.html

を使用してGridViewの中で、通常のyii\grid\CheckboxColumn列を使用することができます。

echo GridView::widget([ 
    'id' => 'griditems', 
    'dataProvider' => $dataProvider, 
    'columns' => [ 
     ....... 
     [ 
      'class' => 'yii\grid\CheckboxColumn', 'checkboxOptions' => function($model) { 
        return ['value' => $model->your_value]; 
       }, 
     ], 
    ], 
    ]); 
関連する問題