<?php
// src/Form/LoginType.php
namespace App\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
/**
* @see https://symfony.com/doc/current/security/remember_me.html
* @see https://symfony.com/doc/current/security/csrf.html
*/
class LoginType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('_username', EmailType::class, [
'attr' => ['placeholder' => "email"],
'label' => 'email',
'translation_domain' => 'messages'
])
->add('_password', PasswordType::class, [
'attr' => ['placeholder' => "password"],
'label' => 'password',
'translation_domain' => 'messages'
])
->add('_remember_me', CheckboxType::class, [
'label' => 'remember_me',
'translation_domain' => 'messages',
'mapped' => false,
'required' => false,
])
->add('submit', SubmitType::class, [
'label' => 'submit',
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
// 'data_class' => User::class,
'attr' => ['id' => 'login'],
// enable/disable CSRF protection for this form
'csrf_protection' => true,
// the name of the hidden HTML field that stores the token
'csrf_field_name' => '_csrf_token',
// an arbitrary string used to generate the value of the token
// using a different string for each form improves its security
'csrf_token_id' => 'authenticate',
]);
}
public function getBlockPrefix()
{
// DO NOT TOUCH
return '';
}
}