/** * @param Mail $mail * * @return mixed|void */ public function postPersist($mail) { $container = $this->getConfigurationPool()->getContainer(); /** @var \Doctrine\ORM\EntityManager $em */ $em = $container->get('doctrine')->getManager(); /** @var $users \Application\Bundle\UserBundle\Entity\User[] */ if ($mail->getEvents()->count() > 0 || $mail->getPaymentStatus()) { $users = $em->getRepository('StfalconEventBundle:Ticket')->findUsersSubscribedByEventsAndStatus($mail->getEvents(), $mail->getPaymentStatus()); } else { $users = $em->getRepository('ApplicationUserBundle:User')->getAllSubscribed(); } if (isset($users)) { $countSubscribers = 0; foreach ($users as $user) { $mailQueue = new MailQueue(); $mailQueue->setUser($user); $mailQueue->setMail($mail); $em->persist($mailQueue); $countSubscribers++; } $mail->setTotalMessages($countSubscribers); } $em->persist($mail); $em->flush(); return true; }
/** * @param ObjectManager $manager */ public function load(ObjectManager $manager) { $userDefault = $manager->merge($this->getReference('user-default')); $mail = new Mail(); $mail->setTitle('test'); $mail->setText('test'); $mail->setPaymentStatus($manager->merge($this->getReference('payment'))); $mail->addEvent($manager->merge($this->getReference('event-zfday'))); $manager->persist($mail); $mq = new MailQueue(); $mq->setMail($mail); $mq->setUser($userDefault); $manager->persist($mq); $manager->flush(); $this->addReference('mail_queue', $mq); }