src/Controller/DemoController.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\DemoRequestType;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Component\Mailer\MailerInterface;
  9. use Symfony\Component\Mime\Email;
  10. class DemoController extends AbstractController
  11. {
  12.     /**
  13.      * @Route("/request-demo", name="request_demo", methods={"GET","POST"})
  14.      */
  15.     public function requestDemo(Request $requestMailerInterface $mailer): Response
  16.     {
  17.         $form $this->createForm(DemoRequestType::class);
  18.         $form->handleRequest($request);
  19.         if ($form->isSubmitted() && $form->isValid()) {
  20.             $data $form->getData();
  21.             $to 'info@ctssys.com'// CHANGE THIS to your receiving inbox
  22.             $body =
  23.                 "Demo Request\n".
  24.                 "Institution: {$data['institution']}\n".
  25.                 "Role: {$data['role']}\n".
  26.                 "Name: {$data['name']}\n".
  27.                 "Email: {$data['email']}\n".
  28.                 "Phone: ".($data['phone'] ?? '')."\n\n".
  29.                 "Notes:\n".($data['message'] ?? '');
  30.             $email = (new Email())
  31.                 ->from($to)               // keep FROM as your domain for deliverability
  32.                 ->replyTo($data['email']) // so you can reply to the requester
  33.                 ->to($to)
  34.                 ->subject('CogniEdu - Demo Request')
  35.                 ->text($body);
  36.             $mailer->send($email);
  37.             $this->addFlash('success''Thanks — your demo request has been submitted.');
  38.             return $this->redirectToRoute('request_demo');
  39.         }
  40.         return $this->render('demo/request_demo.html.twig', [
  41.             'form' => $form->createView(),
  42.         ]);
  43.     }
  44. }