|
@@ -0,0 +1,104 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace AppBundle\Controller;
|
|
|
+
|
|
|
+use AppBundle\Entity\Genre;
|
|
|
+use AppBundle\Form\GenreType;
|
|
|
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
|
|
|
+use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
|
|
+use Symfony\Component\Routing\Annotation\Route;
|
|
|
+use Symfony\Component\HttpFoundation\Request;
|
|
|
+
|
|
|
+class GenreController extends Controller
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * @Route("/admin/genre/", name="genre_liste")
|
|
|
+ */
|
|
|
+ public function indexAction() {
|
|
|
+ $em = $this->getDoctrine()->getManager();
|
|
|
+ $repo = $em->getRepository('AppBundle:Genre');
|
|
|
+ $genres = $repo->findAll();
|
|
|
+
|
|
|
+ return $this->render('@App/genre/liste.html.twig', array(
|
|
|
+ 'genres' => $genres
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Route("/admin/genre/ajouter", name="genre_ajouter")
|
|
|
+ */
|
|
|
+ public function ajouterAction(Request $request)
|
|
|
+ {
|
|
|
+ $genre = new Genre();
|
|
|
+ $form = $this->createForm(GenreType::class, $genre);
|
|
|
+
|
|
|
+ $form->handleRequest($request);
|
|
|
+ if ($form->isSubmitted() && $form->isValid())
|
|
|
+ {
|
|
|
+ $em = $this->getDoctrine()->getManager();
|
|
|
+ $em->persist($genre);
|
|
|
+ $em->flush();
|
|
|
+ $this->addFlash('success', 'Le genre a été ajouté');
|
|
|
+ return $this->redirectToRoute('genre_liste');
|
|
|
+ }
|
|
|
+
|
|
|
+ return $this->render('@App/genre/ajouter.html.twig', array(
|
|
|
+ 'form' => $form->createView(),
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Route("/admin/genre/modifier/{id}", name="genre_modifier")
|
|
|
+ */
|
|
|
+ public function modifierAction(Request $request, Genre $genre)
|
|
|
+ {
|
|
|
+ $form = $this->createForm(GenreType::class, $genre);
|
|
|
+ $form->handleRequest($request);
|
|
|
+ $em = $this->getDoctrine()->getManager();
|
|
|
+ $films = $em->getRepository('AppBundle:Film')->findFilmWithGenre(array($genre->getName()));
|
|
|
+
|
|
|
+ if ($form->isSubmitted() && $form->isValid())
|
|
|
+ {
|
|
|
+
|
|
|
+ $em->flush();
|
|
|
+ $this->addFlash('success', 'Le genre a été modifié');
|
|
|
+ return $this->redirectToRoute('genre_liste');
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return $this->render('@App/genre/modifier.html.twig', array(
|
|
|
+ 'form' => $form->createView(),
|
|
|
+ 'genre' => $genre,
|
|
|
+ 'films' => $films
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Route("/admin/genre/supprimer/{id}", name="genre_supprimer")
|
|
|
+ * @Security("has_role('ROLE_ADMIN')")
|
|
|
+ */
|
|
|
+ public function supprimerAction(Request $request, Genre $genre)
|
|
|
+ {
|
|
|
+ $form = $this->get('form.factory')->create();
|
|
|
+ $form->handleRequest($request);
|
|
|
+ if ($form->isSubmitted() && $form->isValid())
|
|
|
+ {
|
|
|
+ $em = $this->getDoctrine()->getManager();
|
|
|
+ $films = $em->getRepository('AppBundle:Film')->findFilmWithGenre(array($genre->getName()));
|
|
|
+ foreach ($films as $film)
|
|
|
+ {
|
|
|
+ $film->removeGenre($genre);
|
|
|
+ }
|
|
|
+ $em->remove($genre);
|
|
|
+ $em->flush();
|
|
|
+ $this->addFlash('success', 'Le genre '.$genre->getName().' a bien été supprimé.');
|
|
|
+ return $this->redirectToRoute('genre_liste');
|
|
|
+ }
|
|
|
+
|
|
|
+ return $this->render('@App/genre/supprimer.html.twig', array(
|
|
|
+ 'genre' => $genre,
|
|
|
+ 'form' => $form->createView()
|
|
|
+ ));
|
|
|
+ }
|
|
|
+
|
|
|
+}
|