public function periodeAction(Saison $saison) { $em = $this->getDoctrine()->getManager(); $session = $this->getRequest()->getSession(); $form = $this->createForm(new SaisonPeriodesType(), $saison->addPeriode(new Periode())->addPeriode(new Periode())->addPeriode(new Periode())); if ($saison->getType() == 3) { $form->add("amicales"); } $request = $this->getRequest(); if ($request->isMethod("POST")) { $form->submit($request); if ($form->isValid()) { $saison = $form->getData(); foreach ($saison->getPeriodes() as $periode) { if ($periode->getDateDebut() == NULL || $periode->getDateFin() == NULL || $periode->getDateFin()->format("Y-m-d") < $periode->getDateDebut()->format("Y-m-d")) { $em->remove($periode); $saison->removePeriode($periode); } else { $em->persist($periode->setSaison($saison)); } } $em->flush(); $session->getFlashBag()->add('success', " Votre saison a été modifié avec succées "); return $this->redirect($this->generateUrl("PeriodeSaison", array('id' => $saison->getId()))); } } return $this->render('BackHotelTunisieBundle:Saisons:periodes.html.twig', array('hotel' => $saison->getHotel(), 'saison' => $saison, 'form' => $form->createView())); }