Abhijith Abhi
Abhijith Abhi

Reputation: 53

Yii2 how to create a dataProvider dynamically

I have two models like below

$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 and $analyticsKsa.These are building dynamically.So my concern is to add these models to an empty dataprovider like below

$dataProvider = new ActiveDataProvider();

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

But it is not the right way.How can i achieve this.Thanks in advance

Upvotes: 0

Views: 263

Answers (1)

Michal Hynčica
Michal Hynčica

Reputation: 6179

For cases like this you want to use \yii\data\ArrayDataProvider instead of \yii\data\ActiveDataProvider

You can pass your models in array to the allModels property when creating its instance.

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

Upvotes: 2

Related Questions