【问题标题】:Save data from gridview to another table yii2将数据从gridview保存到另一个表yii2
【发布时间】:2016-12-26 21:28:14
【问题描述】:

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

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

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

【问题讨论】:

    标签: yii yii2


    【解决方案1】:

    如果你有一个带有过滤数据的网格视图,这意味着你有 $dataProvider

    简单地尝试使用渲染到新视图(如果表在另一个视图中)或在新的网格视图中

        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();
    
      }
    

    【讨论】:

    • 添加对一些代码的质疑。我的意思是我想将数据保存在数据库的新表中。
    • 您可以在调用视图之前直接在操作中执行此操作..为什么您需要在视图中使用它..?一些事件? ..请更好地解释你的操作背景
    • 首先用户将过滤后的信息保存在excel中,然后将数据保存在db中。
    • 那么我添加的代码应该就是你要找的......让我知道
    猜你喜欢
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    相关资源
    最近更新 更多