src/Controller/HomeController.php line 65
<?phpnamespace App\Controller;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\Routing\Annotation\Route;use App\Entity\NewsletterSubscription;use App\Form\NewsletterSubscriptionType;use App\Repository\NewsletterSubscriptionRepository;use Doctrine\ORM\EntityManagerInterface;class HomeController extends AbstractController{#[Route('/news/letter', name: 'app_souscription_new_letter')]public function appSouscriptionNewLetter(Request $request, NewsletterSubscriptionRepository $subscriptionRepository, EntityManagerInterface $entityManager): Response{if ($request->request->count() > 0) {$newsletter = trim($request->request->get("newsletter"));// Vérifier si l'email est déjà abonnéif (strlen($newsletter) == 0) {// Si l'email existe déjà, afficher un message d'erreur$this->addFlash('warning', 'Veuillez saisir votre adresse email.');// Rediriger vers la même page pour que le message soit affichéreturn $this->redirectToRoute('app_home');}$existingSubscription = $subscriptionRepository->findOneBy(['email' => $newsletter]);if ($existingSubscription) {// Si l'email existe déjà, afficher un message d'erreur$this->addFlash('warning', 'Vous êtes déjà abonné à notre newsletter avec cet email.');// Rediriger vers la même page pour que le message soit affichéreturn $this->redirectToRoute('app_home');}// Sauvegarder l'abonnement dans la base de données$subscription = new NewsletterSubscription();$subscription->setEmail($newsletter);$subscription->setSubscribedAt(new \DateTime());// $entityManager = $this->getDoctrine()->getManager();$entityManager->persist($subscription);$entityManager->flush();// Rediriger avec un message de succès$this->addFlash('success', 'Merci pour votre abonnement à la newsletter !');// Rediriger vers une page de confirmation ou la même pagereturn $this->redirectToRoute('app_home');}return $this->redirectToRoute('app_home');}#[Route('/', name: 'app_home')]public function index(Request $request, NewsletterSubscriptionRepository $subscriptionRepository, EntityManagerInterface $entityManager): Response{$currentYear = (new \DateTime())->format('Y');$startYear = 1988;$experienceYears = $currentYear - $startYear;return $this->render('home/index.html.twig', ['controller_name' => 'HomeController','experienceYears' => $experienceYears,]);}}