public function setTokens(User &$user, array $tokens) { $em = $this->getEntityManager(); $userRepo = $em->getRepository('AppBundle:User'); foreach ($tokens as $token) { $subscription = $this->findOneByToken($token); if (!$subscription) { $subscription = new Subscription(); $subscription->setToken($token); $em->persist($subscription); $em->flush(); } $userRepo->subscribe($user, $subscription); } }