src/Controller/ContactController.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\ContactType;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Mailer\MailerInterface;
  8. use Symfony\Component\Mime\Email;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. class ContactController extends AbstractController
  11. {
  12. /**
  13. * @Route("/contact", name="contact")
  14. */
  15. public function index(Request $request, MailerInterface $mailer): Response
  16. {
  17. $form = $this->createForm(ContactType::class);
  18. $form->handleRequest($request);
  19. if ($form->isSubmitted() && $form->isValid()) {
  20. $data = $form->getData();
  21. $email = (new Email())
  22. ->from($data['email'])
  23. ->to('contact@cabinet-avocat.fr') // Target email
  24. ->subject('Nouveau message: ' . $data['subject'])
  25. ->text("Nom: {$data['name']}\nEmail: {$data['email']}\nTéléphone: {$data['phone']}\n\nMessage:\n{$data['message']}");
  26. try {
  27. $mailer->send($email);
  28. $this->addFlash('success', 'Votre message a bien été envoyé. Nous vous répondrons dans les plus brefs délais.');
  29. } catch (\Exception $e) {
  30. $this->addFlash('error', "Une erreur est survenue lors de l'envoi de votre message.");
  31. }
  32. return $this->redirectToRoute('contact');
  33. }
  34. return $this->render('contact/index.html.twig', [
  35. 'contact_form' => $form->createView(),
  36. ]);
  37. }
  38. }