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

时间:2016-12-26 06:10:22

标签: yii yii2

我有一个带有过滤数据的gridview。如何将数据导出到另一个表,例如来自kartik的ExportMenu?

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

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

1 个答案:

答案 0 :(得分:1)

如果你有一个带有过滤数据的gridview,这意味着你有$ dataProvider

尝试使用渲染到新视图(如果表在另一个视图中)或在新的girdview中

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

或调用将dataProvider作为参数传递的操作

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

每个dataProvider都包含一个models属性,列出了与dataProvider相关的所有模型,因此如果您需要在新表中保存此模型,可以在操作中使用此代码

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

     $myModel = new MyModel();

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

  }