src/Controller/HomeController.php line 51

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\ContactType;
  4. use App\Entity\CategoryServices;
  5. use App\Entity\Service;
  6. use App\Entity\Team;
  7. use App\Entity\Partenaires;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Symfony\Component\Mailer\MailerInterface;
  14. use Symfony\Component\Mime\Email;
  15. class HomeController extends AbstractController
  16. {
  17.     /**
  18.      * @var EntityManagerInterface
  19.      */
  20.     private $em;
  21.     public function __construct(EntityManagerInterface $em)
  22.     {
  23.         $this->em $em;
  24.     }
  25.     /**
  26.      * @Route("/intro", name="index")
  27.      * @return Response
  28.      */
  29.     public function index(): Response {
  30.         $catServiceRepo $this->em->getRepository(CategoryServices::class);
  31.         $category_services $catServiceRepo->findBy(['status' => 1]);
  32.         $podcasts $this->em->getRepository(Service::class)->findOneBy(['slug' => 'studio-podcast']);
  33.         return $this->render('home/index-intro.html.twig', [
  34.             'category_services' => $category_services
  35.         ]);
  36.     }
  37.     /**
  38.      * @Route("/", name="homepage")
  39.      * @return Response
  40.      */
  41.     public function home(): Response {
  42.         $catServiceRepo $this->em->getRepository(CategoryServices::class);
  43.         $category_services $catServiceRepo->findBy(['status' => 1]);
  44.         $podcast $this->em->getRepository(Service::class)->findOneBy(['slug' => 'studio-podcast']);
  45.         $team $this->em->getRepository(Team::class)->findBy(['status' => ]);
  46.         $partenaires $this->em->getRepository(Partenaires::class)->findBy(['status' => ]);
  47.         //dd($podcast);
  48.         return $this->render('home/index.html.twig', [
  49.             'category_services' => $category_services,
  50.             'podcast' => $podcast,
  51.             'teams' => $team,
  52.             'partenaires' => $partenaires
  53.         ]);
  54.     }
  55.      /**
  56.      * @Route("/contact", name="app_contact")
  57.      * @return Response
  58.      */
  59.     public function contact_us(Request $requestMailerInterface $mailer): Response
  60.     {
  61.         $form $this->createForm(ContactType::class);
  62.         $form->handleRequest($request);
  63.         $sent false;
  64.  
  65.         if ($form->isSubmitted() && $form->isValid()) {
  66.             $data $form->getData();
  67.  
  68.             $email = (new Email())
  69.                 ->from('contact@rawstudiocompany.com')
  70.                 ->to('mitchconcept@gmail.com')
  71.                 ->subject('Nouveau message — ' $data['fullName'])
  72.                 ->text(sprintf(
  73.                     "De : %s (%s)\nService : %s\n\n%s",
  74.                     $data['fullName'],
  75.                     $data['email'],
  76.                     $data['service'] ?? 'Non précisé',
  77.                     $data['message']
  78.                 ));
  79.  
  80.             $mailer->send($email);
  81.             $sent true;
  82.             $form $this->createForm(ContactType::class); // reset du formulaire
  83.         }
  84.  
  85.         return $this->render('pages/contact.html.twig', [
  86.             'form' => $form->createView(),
  87.             'sent' => $sent,
  88.         ]);
  89.     }
  90. }