123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- namespace App\Controller\Admin;
- use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
- use Symfony\Component\HttpFoundation\Request;
- use Symfony\Component\HttpFoundation\Response;
- use Symfony\Component\Routing\Requirement\Requirement;
- use Symfony\Component\Routing\Attribute\Route;
- use Doctrine\ORM\EntityManagerInterface;
- use Symfony\Component\String\Slugger\AsciiSlugger;
- use App\Entity\Genre;
- use App\Form\GenreType;
- use App\Repository\GenreRepository;
- final class GenreController extends AbstractController
- {
- /*
- * Lister tous les genres
- */
- #[Route('/admin/genre', name: 'app_admin_genre', methods: ['GET'])]
- public function index(GenreRepository $repository): Response
- {
- $genres = $repository->findAll();
- return $this->render('admin/genre/index.html.twig', [
- 'genres' => $genres,
- ]);
- }
- /*
- * Supprimer un genre
- */
- #[Route('/admin/genre/{id}/delete', name: 'app_admin_genre_delete', requirements: ['id' => Requirement::UUID_V7], methods: ['GET'])]
- public function delete(?Genre $genre, EntityManagerInterface $manager): Response
- {
- $manager->remove($genre);
- $manager->flush();
- $this->addFlash('success', 'Genre supprimé avec succès.');
- return $this->redirectToRoute('app_admin_genre');
- }
- /*
- * Modifier un genre
- */
- #[Route('/admin/genre/{id}/edit', name: 'app_admin_genre_edit', requirements: ['id' => Requirement::UUID_V7], methods: ['GET', 'POST'])]
- public function edit(?Genre $genre, Request $request, EntityManagerInterface $manager): Response
- {
- $form = $this->createForm(GenreType::class, $genre);
- $form->handleRequest($request);
- if ($form->isSubmitted() && $form->isValid()) {
- // Aucun slug n'a été proposé par l'utilisateur
- if (!$form->get('slug')->getData()) {
- $slugger = new AsciiSlugger('fr_FR');
- $genre->setSlug($slugger->slug(strtolower($genre->getGenre())));
- }
- $manager->persist($genre);
- $manager->flush();
- $this->addFlash('success', 'Genre ajouté à la base de données avec succès.');
- return $this->redirectToRoute('app_admin_genre');
- }
- return $this->render('admin/genre/edit.html.twig', [
- 'form' => $form,
- 'genre' => $genre,
- ]);
- }
- /*
- * Ajouter un genre
- */
- #[Route('/admin/genre/add', name: 'app_admin_genre_add', methods: ['GET', 'POST'])]
- public function add(Request $request, EntityManagerInterface $manager): Response
- {
- $genre = new Genre();
- $form = $this->createForm(GenreType::class, $genre);
- $form->handleRequest($request);
- if ($form->isSubmitted() && $form->isValid()) {
- // Aucun slug n'a été proposé par l'utilisateur
- if (!$form->get('slug')->getData()) {
- $slugger = new AsciiSlugger('fr_FR');
- $genre->setSlug($slugger->slug(strtolower($genre->getGenre())));
- }
- $manager->persist($genre);
- $manager->flush();
- $this->addFlash('success', 'Genre ajouté à la base de données avec succès.');
- return $this->redirectToRoute('app_admin_genre');
- }
- return $this->render('admin/genre/edit.html.twig', [
- 'form' => $form,
- ]);
- }
- }
|