src/Controller/BaseController.php line 18

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Contact;
  4. use App\Entity\ContactWebsite;
  5. use App\Form\ContactType;
  6. use App\Notification\ContactNotification;
  7. use App\Repository\ContactWebsiteRepository;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. class BaseController extends AbstractController
  13. {
  14.     #[Route('/'name'app_index')]
  15.     public function index(): Response
  16.     {
  17.         return $this->render('pages/index.html.twig');
  18.     }
  19.     #[Route('/contact'name'app_contact')]
  20.     public function contact(Request $requestContactNotification $notificationContactWebsiteRepository $contactWebsiteRepository): Response
  21.     {
  22.         $contact = new Contact();
  23.         $form $this->createForm(ContactType::class, $contact);
  24.         $form->handleRequest($request);
  25.         if($form->isSubmitted() && $form->isValid()){
  26.             //envoi du mail
  27.             $notification->notify($contact);
  28.             
  29.             //Ajout du contact dans la BDD
  30.             $contactWebsite = new ContactWebsite();
  31.             $contactWebsite->setName($contact->getName());
  32.             $contactWebsite->setSubject($contact->getSubject());
  33.             $contactWebsite->setEmail($contact->getEmail());
  34.             $contactWebsite->setPhone($contact->getPhone());
  35.             $contactWebsite->setMessage($contact->getMessage());
  36.             $contactWebsiteRepository->save($contactWebsitetrue);
  37.             //Message flash de succès
  38.             $this->addFlash('success''Votre mail a bien été envoyé.');
  39.             return $this->redirectToRoute('app_contact');
  40.         }
  41.         return $this->render('pages/contact.html.twig', [
  42.             'form' => $form
  43.         ]);
  44.     }
  45. }