RealisateurController.php 3.0 KB

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