<?php
namespace App\Form;
use App\Form\Type\PhoneType;
use libphonenumber\PhoneNumberFormat;
use Misd\PhoneNumberBundle\Form\Type\PhoneNumberType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CountryType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class UserSignupForm extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('salutation', ChoiceType::class, [
'choices' => [
'account.profile.salut_m' => 'm',
'account.profile.salut_f' => 'f',
],
'placeholder' => 'account.profile.please_select',
])
->add('title')
->add('firstName')
->add('lastName')
->add('companyName')
->add('addressStreetNo')
->add('addressStreetAdd')
->add('addressPostalCode')
->add('addressCity')
->add('addressCountry', CountryType::class, [
'preferred_choices' => [
'DE', 'AT', 'CH', 'NL', 'FR', 'GB'
],
'placeholder' => 'account.profile.please_select',
])
->add('emailAddress', EmailType::class)
->add('hasNewsletter', CheckboxType::class,
['label_attr' => ['class'=> 'super-1']])
->add('phoneNumber', PhoneNumberType::class, ['format' => PhoneNumberFormat::INTERNATIONAL])
->add('phoneNumber2', PhoneNumberType::class, ['format' => PhoneNumberFormat::INTERNATIONAL])
->add('dateOfBirth', BirthdayType::class, [
'widget' => 'choice',
'years' => range(date('Y')-1, date('Y')-100),
'format' => 'dd MM yyyy',
])
->add('username')
->add('plainPassword', RepeatedType::class, [
'type' => PasswordType::class,
'first_options' => ['label' => 'Password', 'attr' => ['autocomplete' => 'new-password']],
'second_options' => ['label' => 'Repeat password', 'attr' => ['autocomplete' => 'new-password']]
]);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'App\Entity\User',
'validation_groups' => ['Default', 'Registration']
]);
}
}