<?php
namespace App\Form;
use App\Beans\Login;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class LoginType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('username', TextType::class, array(
'label' => 'identifiant',
'attr' => [
'placeholder' => 'identifiant',
],
))
->add('password', PasswordType::class, array(
'label' => 'mot de passe',
'attr' => [
'placeholder' => 'mot de passe',
],
))
->add('passhash')
// ;
//
// -----------------------------------------------
// pour crypter le password avant de l'envoyer'
->addEventListener(FormEvents::PRE_SUBMIT ,
function (FormEvent $event) {
$form = $event->getForm();
$data = $event->getData();
$user = $data['username'];
$pass = $data['password'];
$pass = password_hash($pass, PASSWORD_BCRYPT);
// $data['password'] = $pass;
$data['passhash'] = $pass;
$event->setData($data);
// $form->setData($login);
})
// -----------------------------------------------
->getForm();
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Login::class,
]);
}
}