我在我的控制器中有这样的查询
$dataPendaftar = Pendaftar::find()
->select(['pendaftar.*','user.*'])
->from('pendaftar')
-> leftJoin('user', 'user.id=pendaftar.id_user_pendaftar')
->asArray()
->all();
return $this->render('index', [
'dataPendaftar' => $dataPendaftar,
]);
在我看来,我尝试使用kartik yii2-export小部件,就像这样
$gridColumns= [
'nik_pendaftar',
'tanggal_lahir',
'email',
];
echo ExportMenu::widget([
'dataProvider' => $dataPendaftar,
'columns' => $gridColumns,
'fontAwesome' => true,
]);
但我收到了错误
在数组
上调用成员函数getModels()
是否可以使用kartik yii2-export小部件与数组中的模型而不是dataProvider?
答案 0 :(得分:1)
ExportMenu:$dataProvider
需要是DataProviderInterface
的实例,但是您传递的是模型数组(这是all()
返回的内容)。试试这个:
$dataPendaftar = new ActiveDataProvider([
'query' => Pendaftar::find()
->select(['pendaftar.*','user.*'])
->from('pendaftar')
->leftJoin('user', 'user.id=pendaftar.id_user_pendaftar')
]);
return $this->render('index', [
'dataPendaftar' => $dataPendaftar,
]);
或者,如果您确实想要使用查询结果,请使用ArrayDataProvider
:
$dataPendaftar = Pendaftar::find()
->select(['pendaftar.*','user.*'])
->from('pendaftar')
->leftJoin('user', 'user.id=pendaftar.id_user_pendaftar')
->asArray()
->all();
return $this->render('index', [
'dataPendaftar' => new ArrayDataPrivider([
'allModels' => $dataPendaftar,
]),
]);