src/Controller/ContactController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Product;
  4. use App\Entity\Contact;
  5. use App\Form\ContactType;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\Mailer\MailerInterface;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. class ContactController extends AbstractController
  14. {
  15.     private $entityManager
  16.     public function __construct(EntityManagerInterface $entityManager)
  17.     {
  18.         $this->entityManager $entityManager;
  19.     }
  20.     #[Route('/nous-contacter'name'app_contact')]
  21.     public function index(Request $requestEntityManagerInterface $manager,MailerInterface $mailer): Response
  22.     {
  23.         $activity $this->entityManager->getRepository(Product::class)->findAll();
  24.         $notification null;
  25.         $contact = new Contact();
  26.         if($this->getUser()) {
  27.             $contact->setFirstname($this->getUser()->getFirstname())
  28.             ->setLastname($this->getUser()->getLastname())
  29.             ->setEmail($this->getUser()->getEmail());
  30.         }
  31.         
  32.         $form $this->createForm(ContactType::class, $contact);
  33.         $form->handleRequest($request);
  34.         if ($form->isSubmitted() && $form->isValid()){
  35.             $contact $form->getData();
  36.             $manager->persist($contact);
  37.             $manager->flush();
  38.             $email = (new TemplatedEmail())
  39.             ->from($contact->getEmail())
  40.             ->to('nordicindiana@yahoo.fr')
  41.             ->subject($contact->getSubject())
  42.         ->htmlTemplate('contact/email.html.twig')
  43.         ->context([
  44.         'contact' => $contact
  45.     ]);
  46.         $mailer->send($email);
  47.             $notification =  "Merci de m'avoir contacté. Je vous répondrai dans les meilleurs délais.";
  48.         }
  49.         return $this->render('contact/index.html.twig', [
  50.             'form' => $form->createView(),
  51.             'notification' => $notification,
  52.             'activity' => $activity
  53.         ]);
  54.     }
  55. }