/** *@Given there are following inscriptions: * *@param TableNode $tableNode */ public function createInscription($tableNode) { $em = $this->getEntityManager(); foreach ($tableNode->getHash() as $inscriptionHash) { $inscription = new Inscription(); $user = $this->getEntityManager()->getRepository('AppBundle:User')->findOneByUsername($inscriptionHash['username']); $conference = $this->getEntityManager()->getRepository('AppBundle:Conference')->findOneByName($inscriptionHash['name']); $inscription->setUser($user); $inscription->setConference($conference); $em->persist($inscription); } $em->flush(); }
/** * @Route("/inscription", name="inscription") * @Security("has_role('ROLE_USER')") * Función para inscribirse en una conferencia */ public function inscriptionAction() { $conference = $this->getConference(); if ($conference->getDateEnd() < new \DateTime()) { $this->get('session')->getFlashBag()->set('alert', $this->get('translator')->trans('You can not register for this conference')); return $this->redirectToRoute('conference_show', ['code' => $conference->getCode()]); } $user = $this->getUser(); $inscription = $this->getDoctrine()->getRepository('AppBundle:Inscription')->findOneBy(array('conference' => $conference, 'user' => $user)); if ($inscription) { $this->get('session')->getFlashBag()->set('alert', $this->get('translator')->trans('You can not register again in this conference')); return $this->redirectToRoute('conference_show', ['code' => $conference->getCode()]); } $inscription = new Inscription(); $inscription->setConference($conference); $inscription->setUser($user); $this->getDoctrine()->getManager()->persist($inscription); $this->getDoctrine()->getManager()->flush(); $this->get('session')->getFlashBag()->set('success', $this->get('translator')->trans('Congratulations you are already registered')); return $this->redirectToRoute('conference_show', ['code' => $conference->getCode()]); }