将gridview中的数据保存到另一个表中yii2

问题描述:

我有一个带过滤数据的gridview。我怎样才能将数据导出到另一个表,例如kartik的ExportMenu?将gridview中的数据保存到另一个表中yii2

<?= GridView::widget([ 
    'options' => ['width' => '70'], 
    'dataProvider' => $dataProvider, 

echo ExportMenu::widget([ 
     'dataProvider' => $dataProvider, 
     'columns' => $gridColumns 
]); 
?> 

如果你有filterd数据一个GridView这意味着你必须$ dataProvider中

simmply尝试使用渲染到新的视图(如果表中的其他视图),或在新girdview

return $this->render('my_other_view', [ 
     'searchModel' => $searchModel, 
     'dataProvider' => $dataProvider, 
    ]); 

或呼叫传递的dataProvider作为PARAM动作

Url:to(['/your_controller/action', 'dataProvider' => $dataProvider); 

每个了DataPro vider包含一个模型属性是列表中的所有相关的数据提供程序模型,所以如果你需要在一个新的表保存此模型,你可以在你的动作使用此代码

foreach($dataProvider->models as $model) { 

    $myModel = new MyModel(); 

    $myModel->att1 = $model->att1; 
    $myModel->att2 = $model->att2; 
    ...... 
    $myModel->save(); 

    } 
+0

加质疑一些代码。我的意思是我想保存数据在新表中的数据库。 – cruim

+0

你可以在调用视图之前直接在动作中做到这一点..为什么你需要这个视图..?一些事件? ..更好地解释你的操作环境,请 – scaisEdge

+0

首先用户将过滤的信息保存在Excel中,然后将数据保存在数据库中。 – cruim