src/Controller/ContactController.php line 18

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Contact;
  4. use App\Form\ContactType;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use App\Service\MailService;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\Validator\Validator\ValidatorInterface;
  12. class ContactController extends AbstractController
  13. {
  14.     #[Route('/contact'name'app_contact')]
  15.     public function index(Request $requestEntityManagerInterface $entityManagerValidatorInterface $validatorMailService $mailService): Response
  16.     {
  17.         // créer le formulaire à partir de l'instance de la class Contact
  18.         // car mon formulaire est lié à la class Contact
  19.         // la class contact est instanciée car je peux initialiser des valeurs à mes champs
  20.         $contact = new Contact();
  21.         $form $this->createForm(ContactType::class, $contact);
  22.         $form->handleRequest($request);
  23.         
  24.         
  25.    // SI VOUS VOULEZ RÉCUPÉRER LES MESSAGES D'ERREUR
  26.         // ET LES AFFICHER DIFFÉREMENT
  27.        // if ($form->isSubmitted()) {
  28.          //   $errors = $validator->validate($contact);
  29.            // if (count($errors) > 0) {
  30.         
  31.            //      return $this->render('contact/index.html.twig', [
  32.            //         'contact_form' => $form,
  33.            //         'errors' => $errors
  34.            //     ]);
  35.            // }
  36.         // }
  37.         if ($form->isSubmitted() && $form->isValid()) {
  38.             $contact $form->getData();
  39.             $entityManager->persist($contact);
  40.             $entityManager->flush();
  41.             $mailService->sendMail(
  42.                 [
  43.                     'firstName' => $contact->getFirstName(),
  44.                     'name' => $contact->getLastName(),
  45.                     'message' => $contact->getMessage()
  46.                 ],
  47.             $contact->getEmail(),
  48.                 'Message de contact',
  49.                 'contact/email.html.twig'
  50.             );
  51.                 $contact = new Contact();
  52.                 $form $this->createForm(ContactType::class, $contact);
  53.                 $this->addFlash('confirmation''Votre email a bien été envoyé !');
  54.                 // return $this->redirectToRoute('task_success');
  55.         }
  56.         return $this->render('contact/index.html.twig', [
  57.             'contact_form' => $form
  58.         ]);
  59.     }
  60. }
  61.          // comment envoyer 1 mail
  62.         // $email = (new TemplatedEmail())
  63.         // ->from($this->getParameter('app.mail_address'))
  64.         // ->to(new Address($contact->getEmail()))
  65.         // ->subject('Merci de nous avoir contacté')
  66.          // path of the Twig template to render
  67.          //   ->htmlTemplate('contact/email.html.twig')
  68.          //   ->context([
  69.          //   'firstName' => $contact->getFirstName(),
  70.          //   'name' => $contact->getLastName(),
  71.          //   'message' => $contact->getMessage(),
  72.     // ]);
  73.                 // $mailer -> send($email);
  74.         // $this->addFlash('confirmation', 'Votre email a bien été envoyé !');
  75.        // }
  76.         // return $this->render('contact/index.html.twig', [
  77.            //  'contact_form' => $form
  78.          // ]);
  79.  
  80.     // }
  81. // }
  82. ?>