2017-02-17 10 views
0

私はこのようなGridViewのテーブルを持っている: Gridview StorelistYII2 - 行yii2 gridviewをマージするにはどうすればいいですか?

iは4行詳細情報を格納1(実施例)をマージします。それを行うことは可能ですか? 私は、GridViewの内のコードを持っている:

<?php Pjax::begin(['id' => 'pjax_filesetting','timeout'=>false]) ?> 
<?php 

    $this->registerJs(
    " 
     $('.btneditfile').click(function(){ 
      var hqid = $(this).attr('data-hqid'); 
      var storeid = $(this).attr('data-storeid'); 
      var filename = $(this).attr('data-filename'); 

     location.href = '/pos/editfilesetting?hqid='+hqid+'&storeid='+storeid+'&filename='+filename; 
      return false; 
      }); 
    "); 
?> 
    <?= GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'options' => ['class' => 'grid-view active-table'], 
     'columns' => 
      [ 
       ['class' => 'yii\grid\SerialColumn'], 
       [ 
        'label' => 'Store Name', 
        'attribute' => 'store_name', 
        'encodeLabel' => false, 
       ], 
       [ 
        'label' => 'Filename', 
        'attribute' => 'filename', 
        'encodeLabel' => false, 
       ], 
       [ 
        'label' => 'Datecheck', 
        'attribute' => 'datecheck', 
        'encodeLabel' => false, 
        'value' => function($model){ 

           $datecheck = $model["datecheck"]; 

           if($datecheck) 
           { 
            return $model["datecheck"] = "Check"; 
           } 
           else 
           { 
            return $model["datecheck"] = "Not Check"; 

           } 
         } 
       ], 
       [ 
        'label' => 'Timecheck', 
        'attribute' => 'timecheck', 
        'encodeLabel' => false, 
        'value' => function($model){ 

           $timecheck = $model["timecheck"]; 

           if($timecheck) 
           { 
            return $model["timecheck"] = "Check"; 
           } 
           else 
           { 
            return $model["timecheck"] = "Not Check"; 

           } 
          } 
       ], 
       [ 
        'label' => 'Maintenance code', 
        'attribute' => 'maincode', 
        'encodeLabel' => false, 
       ], 
       [ 
        'label' => 'Final Filename', 
        'attribute' => 'usedfilename', 
        'encodeLabel' => false, 
       ], 
       [ 
        'class' => 'yii\grid\ActionColumn', 
        'template' => '<div align="center">{update} {delete}</div>', 
          'buttons' => [      
           'update' => function ($url, $model) use ($controller) { 
            return Html::button(
             '<span class="glyphicon glyphicon-pencil"></span>', 
             [ 
             'class' => 'btn btn-primary btn-xs btneditfile', 
             'title' => Yii::t($controller->transmodule, 'Edit'), 
             'style' => ['padding-top' => '5px', 'padding-bottom' => '5px'], 
             'id' => 'editfile', 
             'data-storeid' => $model['id'], 
             'data-hqid' => $model['cmshqid'], 
             'data-filename' => $model['filename'] 
            ] 
           ); 
          }, 

          'delete' => function ($url, $model)use ($controller){ 
           return Html::button(
           '<span class="glyphicon glyphicon-trash"></span>', 
           [ 
            'class' => 'btn btn-danger btn-xs btndeletefile', 
            'title' => Yii::t($controller->transmodule, 'Delete'), 
            'style' => ['padding-top' => '5px', 'padding-bottom' => '5px'], 
            'data-storeid' => $model['id'], 
            'data-hqid' => $model['cmshqid'], 
            'data-filename' => $model['filename'] 
           ] 
          ); 
         },   
        ], 
       ] 
      ], 
    ]) ?> 
    <?php Pjax::end() ?> 

私はそれをマージするためにしなければなりませんか? ストア名が同じ場合は、それをマージする必要があります。

答えて

1

お店やその他の詳細は1つのテーブルまたは別のテーブルにありますか?それが別のテーブルにある場合、$ dataProviderはストアテーブルからクエリを行う必要があります。ストアモデルでは、詳細を含む他のテーブルとのhasMany関係を作成します。そのため、ビューでは、gridview列関数で、それらの値をループして同じ行に表示することができます。

関連する問題