src/Controller/BaseController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use App\Form\ContactType;
  7. use App\Form\AvisType;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Mailer\MailerInterface;
  10. use Symfony\Component\Mime\Email;
  11. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  12. use App\Entity\Contact;
  13. use App\Entity\Avis;
  14. class BaseController extends AbstractController
  15. {
  16.     #[Route('/'name'index')]
  17.     public function index(): Response
  18.     {
  19.         return $this->render('base/index.html.twig', [
  20.             'controller_name' => 'BaseController'// suppression de la variable passée à la vue
  21.         ]);
  22.     }
  23.    #[Route('/contact'name'contact')]
  24.     public function contact(Request $requestMailerInterface $mailer): Response
  25.     {
  26.         $contact = new Contact();
  27.         $form $this->createForm(ContactType::class, $contact);
  28.         if($request->isMethod('POST')){
  29.             $form->handleRequest($request);
  30.             if ($form->isSubmitted()&&$form->isValid()){   
  31.                 $email = (new TemplatedEmail())
  32.                 ->from($contact->getEmail())
  33.                 ->to('reply@nuage-pedagogique.fr')
  34.                 ->subject($contact->getSujet())
  35.                 ->htmlTemplate('emails/email.html.twig')
  36.                 ->context([
  37.                     'nom'=> $contact->getNom(),
  38.                     'sujet'=> $contact->getSujet(),
  39.                     'message'=> $contact->getMessage()
  40.                 ]); 
  41.  
  42.                 $em $this->getDoctrine()->getManager();
  43.                 $em->persist($contact);
  44.                 $em->flush(); 
  45.                 $mailer->send($email);
  46.                 $this->addFlash('notice','Message envoyé');
  47.                 return $this->redirectToRoute('contact'); 
  48.  
  49.               
  50.                         
  51.             }
  52.         }
  53.         return $this->render('base/contact.html.twig', [
  54.             'form' => $form->createView()
  55.             
  56.         ]);
  57.     }
  58.     #[Route('/avis'name'avis')]
  59.     public function avis(Request $request): Response{
  60.         $avis = new Avis();
  61.         $form $this->createForm(AvisType::class, $avis);
  62.         if($request->isMethod('POST')){
  63.             $form->handleRequest($request);
  64.             if ($form->isSubmitted()&&$form->isValid()){
  65.                 $em $this->getDoctrine()->getManager();
  66.                 $em->persist($avis);
  67.                 $em->flush(); 
  68.                 $this->addFlash('notice','Message envoyé');
  69.                 return $this->redirectToRoute('avis'); 
  70.             }
  71.         }
  72.         return $this->render('base/avis.html.twig', [
  73.             'form' => $form->createView()
  74.         ]);
  75.     }
  76.     #[Route('/mentionLegal'name'mentionLegal')]
  77.     public function mentionLegal(): Response
  78.     {
  79.         return $this->render('base/mentionLegal.html.twig', [
  80.             'controller_name' => 'BaseController'// suppression de la variable passée à la vue
  81.         ]);
  82.     }
  83.     #[Route('/Apropos'name'Apropos')]
  84.     public function Apropos(): Response
  85.     {
  86.         return $this->render('base/Apropos.html.twig', [
  87.             'controller_name' => 'BaseController'// suppression de la variable passée à la vue
  88.         ]);
  89.     }