导出使用的扩展是 kartik-v/yii2-export,先用 composer 安装好它。
控制器和 searchModel
的代码,和用 gii 生成的一样,或者你看看这篇文章,区别在于视图里,传递给 GridView
的 columns 需要共享给 ExportMenu
,做到“所见即所得”的效果,当然你为了自定义一些内容,也可以分开写,视图代码如下:
use kartik\export\ExportMenu;
use yii\grid\GridView;
/**
* @var $this \yii\web\View
* @var $searchModel \app\models\search\UsersSearch
* @var $dataProvider \yii\data\ActiveDataProvider
*/
$gridColumns = [
'id',
'user_name',
];
echo ExportMenu::widget([
'dataProvider' => $dataProvider,
'columns' => $gridColumns,
]);
echo GridView::widget([
'filterModel' => $searchModel,
'dataProvider' => $dataProvider,
'columns' => $gridColumns,
]);