public function getInfos(&$dataProvider) { $arFantasies = []; foreach ($dataProvider->models as $model) { $arFantasies[$model->game][] = $model->fantasy_id; } //echo'<pre>';print_r($arFantasies);echo'</pre>';//die; foreach ($arFantasies as $game => $fanrasies) { switch ($game) { case GamesParams::GAME_DOTA: $fantasyModel = new DotaFantasy(); $draftModel = new DotaDraft(); break; case GamesParams::GAME_POKER: $fantasyModel = new PokerFantasy(); $draftModel = new PokerDraft(); break; } $fantasiesList = $fantasyModel->getFantasiesFromIds($fanrasies); $drafts_counts = $draftModel->getDraftsCount($fanrasies); //echo'<pre>';print_r($drafts_counts);echo'</pre>';//die; foreach ($dataProvider->models as $model) { if ($model->game == $game) { foreach ($fantasiesList as $item) { if ($item['id'] == $model->fantasy_id) { $model->info = $item; } } foreach ($drafts_counts as $id => $item) { if ($id == $model->fantasy_id) { $model->info['drafts_counts'] = $item; } } } } } return $dataProvider; }
public static function getFavFantasies($user_id = 0) { $sql = 'SELECT `id`, `fantasy_id`, `game` FROM ' . self::tableName() . ' WHERE `user_id` = :user_id ORDER BY `id` DESC LIMIT 0,4'; $params = [':user_id' => $user_id]; $rows = Yii::$app->db->createCommand($sql)->bindValues($params)->queryAll(); //echo'<pre>';print_r($rows);echo'</pre>';//die; $arFantasies = []; foreach ($rows as $row) { $arFantasies[$row['game']][] = $row['fantasy_id']; } //echo'<pre>';print_r($arFantasies);echo'</pre>';//die; foreach ($arFantasies as $game => $fanrasies) { switch ($game) { case GamesParams::GAME_DOTA: $fantasyModel = new DotaFantasy(); break; case GamesParams::GAME_POKER: $fantasyModel = new PokerFantasy(); break; } $fantasiesList = $fantasyModel->getFantasiesFromIds($fanrasies); foreach ($rows as &$row) { if ($row['game'] == $game) { foreach ($fantasiesList as $item) { if ($item['id'] == $row['fantasy_id']) { $row['info'] = $item; } } } } //echo'<pre>';print_r($fantasiesList);echo'</pre>';//die; } //echo'<pre>';print_r($rows);echo'</pre>';//die; return $rows; }