Yii2如何动态创建dataProvider

问题描述

我有以下两种型号

$analytics=new CountryAnalytics();
$analytics->country="United arab Emirates";
$analytics->totalAds=$uaeAds;
$analytics->totalUsers=$uaeUsers;

$analyticsKsa=new CountryAnalytics();
$analyticsKsa->country="United arab Emirates";
$analyticsKsa->totalAds=$uaeAds;
$analyticsKsa->totalUsers=$uaeUsers;

$ analtics和$ analyticsKsa。它们是动态构建的。因此,我关心的是将这些模型添加一个空的数据提供程序中,如下所示

$dataProvider = new ActiveDataProvider();

$dataProvider->setData($analytics);
$dataProvider->setData($analyticsKsa);

但这不是正确的方法。我该如何实现。提前感谢

解决方法

对于这种情况,您想使用\yii\data\ArrayDataProvider而不是\yii\data\ActiveDataProvider

创建实例时,可以将数组中的模型传递给allModels属性。

$dataProvider = new \yii\data\ArrayDataProvider([
    'allModels' => [
        $analytics,$analyticsKsa,]
]);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...