/** * @param UserInterface $user * @return UserInterface */ public function changeMail(UserInterface $user) { $entityManager = $this->entityManager; $userExtensionName = $this->collectionOptions->getEntityOptions()->getUserExtension(); /** @var \PServerCore\Entity\UserExtension $userExtension */ $userExtension = new $userExtensionName(); /** @var \PServerCore\Entity\Repository\UserExtension $extensionRepository */ $extensionRepository = $entityManager->getRepository($userExtensionName); $userExtension = $extensionRepository->findOneBy(['key' => $userExtension::KEY_ADD_EMAIL, 'user' => $user]); $user->setEmail($userExtension->getValue()); $entityManager->persist($user); $entityManager->flush(); $extensionRepository->deleteExtension($user, $userExtension::KEY_ADD_EMAIL); return $user; }