filterByWin(true)->filterByGameId($id)->find(); if ($participates) { $winner_index = rand(0, count($participates) - 1); /** @var Participate $winner */ $winner = $participates[$winner_index]; return $this->render("winner", ["participate_id", $winner->getId()]); } else { return $this->render("games"); } } public function processMailWinnerAction($game_id, $id) { $game = GameQuery::create()->filterById($game_id)->findOne(); $participate = ParticipateQuery::create()->filterById($id)->findOne(); if ($game && $participate) { $event = new MailEvent(); $event->setGame($game); $event->setParticipate($participate); try { $this->dispatch(MailEvents::SEND, $event); } catch (\Exception $e) { } return $this->render("winner", ["participate_id", $id]); } return $this->render("games"); } }