<?php
/*
* Author: Dominik Piekarski <code@dompie.de>
* Created at: 2021/07/01 11:08
*/
declare(strict_types=1);
namespace App\Form;
use App\Dto\ContactFormData;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TelType;
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 ContactForm extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('firstName', TextType::class, [
'label' => 'Vorname*',
'attr' => [
'maxlength' => 50,
],
])->add('lastName', TextType::class, [
'label' => 'Nachname',
'required' => false,
'attr' => [
'maxlength' => 50,
],
])->add('email', EmailType::class, [
'label' => 'E-Mail*',
])->add('phone', TelType::class, [
'label' => 'Telefon',
'required' => false,
])->add('webmId', TextType::class, [
'label' => 'Webmaster ID',
'required' => false,
])->add('topic', TextType::class, [
'label' => 'Thema/Betreff*',
'attr' => [
'maxlength' => 100,
],
])->add('message', TextareaType::class, [
'label' => 'Nachricht*',
]);
$builder->add('info', TextType::class, [
'label' => false,
'required' => false,
'disabled' => true,
'data' => '*Die mit Sternchen markierten Felder müssen ausgefüllt werden.',
'mapped' => false,
])->add('submit', SubmitType::class, [
'label' => 'Absenden',
]);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => ContactFormData::class
]);
}
}