RealisateurController.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Realisateur;
  4. use App\Form\RealisateurType;
  5. use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Component\HttpFoundation\Request;
  9. class RealisateurController extends AbstractController
  10. {
  11. /**
  12. * @Route("/real/", name="realisateur_liste")
  13. */
  14. public function indexAction() {
  15. $em = $this->getDoctrine()->getManager();
  16. $repo = $em->getRepository('App:Realisateur');
  17. $realisateurs = $repo->findAll();
  18. return $this->render('realisateur/liste.html.twig', array(
  19. 'realisateurs' => $realisateurs
  20. ));
  21. }
  22. /**
  23. * @Route("/real/ajouter", name="realisateur_ajouter")
  24. */
  25. public function ajouterAction(Request $request)
  26. {
  27. $realisateur = new Realisateur();
  28. $form = $this->createForm(RealisateurType::class, $realisateur);
  29. $form->handleRequest($request);
  30. if ($form->isSubmitted() && $form->isValid())
  31. {
  32. $em = $this->getDoctrine()->getManager();
  33. $em->persist($realisateur);
  34. $em->flush();
  35. $this->addFlash('success', 'Le réalisateur a été ajouté');
  36. return $this->redirectToRoute('realisateur_liste');
  37. }
  38. return $this->render('realisateur/ajouter.html.twig', array(
  39. 'form' => $form->createView(),
  40. //'realisateur' => $realisateur
  41. ));
  42. }
  43. /**
  44. * @Route("/real/modifier/{id}", name="realisateur_modifier")
  45. */
  46. public function modifierAction(Request $request, Realisateur $realisateur)
  47. {
  48. $form = $this->createForm(RealisateurType::class, $realisateur);
  49. $form->handleRequest($request);
  50. if ($form->isSubmitted() && $form->isValid())
  51. {
  52. $em = $this->getDoctrine()->getManager();
  53. $em->flush();
  54. $this->addFlash('success', 'Le réalisateur a été modifié');
  55. return $this->redirectToRoute('realisateur_liste');
  56. }
  57. return $this->render('realisateur/modifier.html.twig', array(
  58. 'form' => $form->createView(),
  59. 'realisateur' => $realisateur
  60. ));
  61. }
  62. /**
  63. * @Route("/real/supprimer/{id}", name="realisateur_supprimer")
  64. * @IsGranted("ROLE_ADMIN")
  65. */
  66. public function supprimerAction(Request $request, Realisateur $realisateur)
  67. {
  68. $form = $this->get('form.factory')->create();
  69. $form->handleRequest($request);
  70. if ($form->isSubmitted() && $form->isValid())
  71. {
  72. $em = $this->getDoctrine()->getManager();
  73. foreach ($realisateur->getFilms() as $film)
  74. {
  75. $film->removeRealisateur($realisateur);
  76. }
  77. $em->remove($realisateur);
  78. $em->flush();
  79. $this->addFlash('success', 'Le réalisateur '.$realisateur->getNomComplet().' a bien été supprimé.');
  80. return $this->redirectToRoute('realisateur_liste');
  81. }
  82. return $this->render('realisateur/supprimer.html.twig', array(
  83. 'realisateur' => $realisateur,
  84. 'form' => $form->createView()
  85. ));
  86. }
  87. }