<?php
namespace App\Controller;
use App\Form\ContactType;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpFoundation\Request;
class ContactController extends AbstractController{ /** * @Route("/contact", name="contact") */ public function index(Request $request, \Swift_Mailer $mailer) { $form = $this->createForm(ContactType::class); $form->handleRequest($request);
//$this->addFlash('info', 'Some useful info');
if ($form->isSubmitted() && $form->isValid()) { $contactFormData = $form->getData(); $message = (new \Swift_Message('You Got Mail!')) ->setFrom($contactFormData['from']) ->setTo('minkou...@gmail.com') ->setBody( $contactFormData['message'], 'text/plain' ) ; $mailer->send($message);
$this->addFlash('success', 'Message envoyé !'); return $this->redirectToRoute('contact'); // do something interesting here } return $this->render('contact/index.html.twig', ['our_form' => $form->createView() ]); }}
{% extends 'base.html.twig' %}
{% block title %}Formulaire de contact{% endblock title %}
{% block body %}<h1>Formulaire de contact</h1>
<div class="container"> {{ form_start(our_form, {'attr': {'class': 'form-horizontal'}}) }} <div class="form-group"> {{ form_label(our_form.name, "Votre nom *") }}
{# Affichage des erreurs pour ce champ précis. #} {{ form_errors(our_form.name) }}
{# Génération de l'input. #} {{ form_widget(our_form.name, {'attr': {'class': 'form-control'}}) }} </div>
<div class="form-group"> {{ form_label(our_form.from, "Votre Email *") }}
{# Affichage des erreurs pour ce champ précis. #} {{ form_errors(our_form.from) }}
{# Génération de l'input. #} {{ form_widget(our_form.from, {'attr': {'class': 'form-control'}}) }} </div>
<div class="form-group"> {{ form_label(our_form.message, "Votre message *") }}
{# Affichage des erreurs pour ce champ précis. #} {{ form_errors(our_form.message) }}
{# Génération de l'input. #} {{ form_widget(our_form.message, {'attr': {'class': 'form-control'}}) }} </div>
<input type="submit" value="Envoyer" />
{{ form_end(our_form) }} </div>
{% endblock %}
<?php
namespace App\Form;
use Symfony\Component\Form\AbstractType;use Symfony\Component\Form\Extension\Core\Type\DateTimeType;use Symfony\Component\Form\Extension\Core\Type\EmailType;use Symfony\Component\Form\Extension\Core\Type\TextareaType;use Symfony\Component\Form\Extension\Core\Type\TextType;use Symfony\Component\Form\FormBuilderInterface;use Symfony\Component\OptionsResolver\OptionsResolver;
class ContactType extends AbstractType{ public function buildForm(FormBuilderInterface $builder, array $options) { $builder //->add('field_name') ->add('name', TextType::class) ->add('from', EmailType::class) //->add('dateOfBirth', DateTimeType::class) ->add('message', TextareaType::class) ; }
public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ // Configure your form options here ]); }}