GenreController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Genre;
  4. use App\Form\GenreType;
  5. use App\Repository\FilmRepository;
  6. use App\Repository\GenreRepository;
  7. use App\Service\GenreManager;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\Form\FormFactoryInterface;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\HttpFoundation\Request;
  12. class GenreController extends AbstractController
  13. {
  14. /**
  15. * @Route("/genre", name="genre_liste")
  16. */
  17. public function indexAction(GenreRepository $repo) {
  18. $genres = $repo->findAll();
  19. return $this->render('genre/liste.html.twig', array(
  20. 'genres' => $genres
  21. ));
  22. }
  23. /**
  24. * @Route("/genre/ajouter", name="genre_ajouter")
  25. */
  26. public function ajouterAction(Request $request, GenreManager $genreManager)
  27. {
  28. $genre = new Genre();
  29. $form = $this->createForm(GenreType::class, $genre);
  30. $form->handleRequest($request);
  31. if ($form->isSubmitted() && $form->isValid())
  32. {
  33. $genreManager->add($genre);
  34. $this->addFlash('success', 'Le genre a été ajouté');
  35. return $this->redirectToRoute('genre_liste');
  36. }
  37. return $this->renderForm('genre/ajouter.html.twig', array(
  38. 'form' => $form,
  39. ));
  40. }
  41. /**
  42. * @Route("/genre/modifier/{id}", name="genre_modifier")
  43. */
  44. public function modifierAction(Request $request, Genre $genre, FilmRepository $repo, GenreManager $genreManager)
  45. {
  46. $form = $this->createForm(GenreType::class, $genre);
  47. $form->handleRequest($request);
  48. $films = $repo->findFilmWithGenre(array($genre->getName()));
  49. if ($form->isSubmitted() && $form->isValid())
  50. {
  51. $genreManager->edit($genre);
  52. $this->addFlash('success', 'Le genre a été modifié');
  53. return $this->redirectToRoute('genre_liste');
  54. }
  55. return $this->renderForm('genre/modifier.html.twig', array(
  56. 'form' => $form,
  57. 'genre' => $genre,
  58. 'films' => $films
  59. ));
  60. }
  61. /**
  62. * @Route("/genre/supprimer/{id}", name="genre_supprimer")
  63. */
  64. public function supprimerAction(Request $request, Genre $genre, GenreManager $genreManager, FormFactoryInterface $ffi)
  65. {
  66. $form = $ffi->create();
  67. $form->handleRequest($request);
  68. if ($form->isSubmitted() && $form->isValid())
  69. {
  70. $genreManager->del($genre);
  71. $this->addFlash('success', 'Le genre '.$genre->getName().' a bien été supprimé.');
  72. return $this->redirectToRoute('genre_liste');
  73. }
  74. return $this->renderForm('genre/supprimer.html.twig', array(
  75. 'genre' => $genre,
  76. 'form' => $form
  77. ));
  78. }
  79. }