src/Controller/ContactFormController.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\MailOutBox;
  4. use Doctrine\Persistence\ManagerRegistry;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  7. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  8. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  9. use Symfony\Component\Form\Extension\Core\Type\TextType;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. /**
  13.  * ContactForm controller.
  14.  *
  15.  * @Route("/contactForm")
  16.  */
  17. class ContactFormController extends AbstractController
  18. {
  19.     private $doctrine;
  20.     public function __construct(ManagerRegistry $doctrine)
  21.     {
  22.         $this->doctrine $doctrine;
  23.     }
  24.     /**
  25.      * @Route("/", name="contactForm", methods={"GET", "POST"})
  26.      */
  27.     public function contactAction(
  28.         Request $request
  29.     )
  30.     {
  31.         $em $this->doctrine->getManager();
  32.         $form $this->createFormBuilder()
  33.             ->setAction($this->generateUrl('contactForm'))
  34.             ->add('email'EmailType::class,[
  35.                 'label' => 'contact_form.email'
  36.             ])
  37.             ->add('name'TextType::class,[
  38.                 'label' => 'contact_form.name'
  39.             ])
  40.             ->add('body'TextareaType::class,[
  41.                 'label' => 'contact_form.message'
  42.             ])
  43.             ->add('add'SubmitType::class,[
  44.                 'label' => 'contact_form.send'
  45.             ])
  46.             ->getForm()
  47.         ;
  48.         if ($request->getMethod() == 'POST') {
  49.             $form->handleRequest($request);
  50.             if ($form->isValid()) {
  51.                 $mailOut = new MailOutBox();
  52.                 $mailOut->setRecipient('scorebox@fra-services.de');
  53.                 $mailOut->setSubject('Kontaktformular anfrage von ' $form->get('name')->getData());
  54.                 $mailOut->setBody('E-Mail: ' $form->get('email')->getData() . "<br>" .
  55.                 'Name: ' $form->get('name')->getData() . "<br>" .
  56.                 'Text: ' nl2br($form->get('body')->getData()));
  57. //                dump($mailOut);
  58. //                die;
  59.                 $em->persist($mailOut);
  60.                 $em->flush();
  61.                 return $this->redirect($request->headers->get('referer'));
  62.             }
  63.         }
  64.         return $this->render('includes/_contactform.html.twig',
  65.             array('form' => $form->createView())
  66.         );
  67.     }
  68. }