src/Controller/ContactController.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\ContactType;
  4. use Symfony\Component\Mime\Address;
  5. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\Mailer\MailerInterface;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  11. class ContactController extends AbstractController
  12. {
  13.     /**
  14.      * @Route("/contact", name="app_contact")
  15.      */
  16.     public function index(
  17.         Request $request,
  18.         MailerInterface $mailer
  19.     ): Response {
  20.         $form $this->createForm(ContactType::class);
  21.         $form->handleRequest($request);
  22.         if ($form->isSubmitted() && $form->isValid()) {
  23.             $contactFormData $form->getData();
  24.             $email = (new TemplatedEmail())
  25.                 ->from($contactFormData['email'])
  26.                 ->to(new Address('olivier@delit.fr''Agence Arenes Immo'))
  27.                 ->subject('Nouveau message depuis votre site web')
  28.                 ->htmlTemplate('contact/contact_email.html.twig')
  29.                 ->context([
  30.                     'sender' => $contactFormData['firstname'] . $contactFormData['lastname'],
  31.                     'telephone' => $contactFormData['telephone'],
  32.                     'senderEmail' => $contactFormData['email'],
  33.                     'message' => trim(nl2br($contactFormData['message']))
  34.                 ])
  35.             ;
  36.             $mailer->send($email);
  37.             $this->addFlash('success''Votre message a bien été envoyé. Nous vous répondrons dans les meilleurs délais.');
  38.             // return $this->redirectToRoute('app_contact');
  39.             return $this->redirect(
  40.                 $this->generateUrl('app_contact') . '#success'
  41.             );
  42.         }
  43.         return $this->render('contact/index.html.twig', [
  44.             'form' => $form->createView(),
  45.             'pageTitle' => 'contact',
  46.         ]);
  47.     }
  48. }