Yii2 Gridview:我当前使用的是哪个数据提供程序?

Yii2 Gridview:我当前使用的是哪个数据提供程序?,gridview,yii2,dataprovider,Gridview,Yii2,Dataprovider,我在同一页面上有两个gridView小部件,每个小部件都有自己的数据提供程序,如下所示: <?= GridView::widget([ 'dataProvider' => $userModel, 'columns' => $columns, ]); ?> <?= GridView::widget([ 'dataProvider' => $companyModel, 'columns' => $columns, ]); ?

我在同一页面上有两个gridView小部件,每个小部件都有自己的数据提供程序,如下所示:

<?= GridView::widget([
    'dataProvider' => $userModel,
    'columns' => $columns,
]); ?>

<?= GridView::widget([
    'dataProvider' => $companyModel,
    'columns' => $columns,
]); ?>
 // user specific columns
$userColumns = [];
$userColumns[] = //... 
// now merge with common columns
$userColumns = array_merge($userColumns,$columns);

两个视图中的列基本相似,但前三列中有一些差异。我想做的是确定当前正在编译哪个小部件,以便动态地为该小部件创建适当的列。例如:

<?php     
$columns=[];

// here is where the problem is. I would like to do something along these lines:  
if(GridView->dataProvider->id == 'userModel')
  {    
     // add custom columns    
     $columns[] = 'userName'; 
  } else {    
     // etc... 
  }

// common columns used by both grids here 
$columns[] = [
    'totalCount',
    'totalCost',
 ];
已解决

首先创建公共列:

// common columns used by both grids here 
$columns = [];
$columns[] = [
    'totalCount',
    'totalCost',
 ];
然后创建并合并自定义列,如下所示:

<?= GridView::widget([
    'dataProvider' => $userModel,
    'columns' => $columns,
]); ?>

<?= GridView::widget([
    'dataProvider' => $companyModel,
    'columns' => $columns,
]); ?>
 // user specific columns
$userColumns = [];
$userColumns[] = //... 
// now merge with common columns
$userColumns = array_merge($userColumns,$columns);
现在从网格小部件调用相应的列:

<?= GridView::widget([
    'dataProvider' => $userModel,
    'columns' => $userColumns,
]); ?>