/** * @inheritDoc */ protected function createEntity($data) { $user = new User(); $user->setLogin($data['login'])->setEmail($data['email'])->setPassword(md5($data['password']))->setHash(md5($data['hash']))->setConfirm($data['confirm'])->setInRest($data['in_rest'])->setLeftRest($data['left_rest'])->setGoneInRest($this->container->get("core.service.date")->getDateTime($data['gone_in_rest']))->setLastPing($this->container->get("core.service.date")->getDateTime($data['last_ping']))->setClass($data['class'])->setRating($data['rating'])->setWin($data['win'])->setDraw($data['draw'])->setLose($data['lose'])->setLoseTime($data['lose_time'])->setImmortalId($data['immortal_id'])->setAnotherLogin($data['another_login'])->setLastMove($this->container->get("core.service.date")->getDateTime($data['last_move']))->setBalance($data['balance'])->setLag((double) @$data["lag"])->setOnline((bool) @$data['online']); if (isset($data["settings"])) { foreach ($data["settings"] as $settingArray) { /** @var UserSetting $userSetting */ $userSetting = $this->getReference($settingArray["settingReference"]); $userSetting->setValue($settingArray["value"]); $user->setSetting($userSetting); } } return $user; }
/** * @param User $user * @return void */ private function initUserSettings(User $user) { $allSettings = $this->manager->getRepository("CoreBundle:UserSetting")->findBy([], ['sort' => 'ASC']); foreach ($allSettings as $setting) { try { $user->getSetting($setting->getName())->setId($setting->getId()); } catch (UserSettingNotFoundException $e) { $user->setSetting($setting); } } $settings = (array) $user->getSettings(); uasort($settings, function (UserSetting $a, UserSetting $b) { return $a->getSort() <=> $b->getSort(); }); $this->container->get('logger')->info('Settings: ' . json_encode(array_keys($settings))); $user->setSettings($settings); }