我有一个带有过滤数据的gridview。如何将数据导出到另一个表,例如来自kartik的ExportMenu?
<?= GridView::widget([
'options' => ['width' => '70'],
'dataProvider' => $dataProvider,
echo ExportMenu::widget([
'dataProvider' => $dataProvider,
'columns' => $gridColumns
]);
?>
答案 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();
}