2017-02-17 4 views
0

은이 같은 gridview에 테이블을 가지고 Gridview StorelistYII2 - 행 yii2 gridview 병합하는 방법?

제가 4 행 상세 정보를 저장 한 (실시 예)를 병합 할. 그것을 할 수 있습니까? 난있는 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

상점 및 기타 세부 사항이 하나의 테이블 또는 별도의 테이블에 있습니까? 별도의 테이블에있는 경우 $ dataProvider는 저장소 테이블에서 쿼리해야합니다. 저장소 모델에서 세부 사항을 포함하는 다른 테이블에 대해 hasMany 관계를 작성하십시오. 따라서 뷰에서 gridview 열 함수에서 해당 값을 순환하여 같은 행에 표시 할 수 있습니다.