将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();
}
加质疑一些代码。我的意思是我想保存数据在新表中的数据库。 – cruim
你可以在调用视图之前直接在动作中做到这一点..为什么你需要这个视图..?一些事件? ..更好地解释你的操作环境,请 – scaisEdge
首先用户将过滤的信息保存在Excel中,然后将数据保存在数据库中。 – cruim