src/UserPanel/Modules/User/Form/ResetPasswordType.php line 15

  1. <?php
  2. namespace App\UserPanel\Modules\User\Form;
  3. use Symfony\Component\Form\AbstractType;
  4. use Symfony\Component\Form\FormBuilderInterface;
  5. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  6. use Symfony\Component\Validator\Constraints as Assert;
  7. use Symfony\Component\Form\FormEvent;
  8. use Symfony\Component\Form\FormEvents;
  9. use Symfony\Component\Form\FormError;
  10. use Doctrine\Persistence\ManagerRegistry;
  11. use App\Modules\User\Entity\User;
  12. class ResetPasswordType extends AbstractType
  13. {
  14.     private $_doctrine;
  15.     public function __construct(ManagerRegistry $doctrine)
  16.     {
  17.         $this->_doctrine $doctrine;
  18.     }
  19.     public function buildForm(FormBuilderInterface $builder, array $options)
  20.     {
  21.         $builder
  22.             ->add('email'EmailType::class, array(
  23.                 'label' => false,
  24.                 'attr' => array('maxlength' => 255'placeholder' => 'Twój adres e-mail'),
  25.                 'constraints' => array(
  26.                     new Assert\NotBlank(),
  27.                     new Assert\Length(array('max' => 255))
  28.                 )
  29.             ))
  30.             ->addEventListener(FormEvents::POST_SUBMIT, function(FormEvent $event)
  31.             {
  32.                 $form $event->getForm();
  33.                 
  34.                 if ($form['email']->getData() != '')
  35.                 {
  36.                     $this->user $this->_doctrine->getRepository(User::class)->findOneBy(['email' => $form['email']->getData(), 'type' => User::TYPE_CLIENT'isActive' => true]);
  37.                     if (!$this->user)
  38.                         $form['email']->addError(new FormError('Email nie istnieje.'));
  39.                 }
  40.             });
  41.     }
  42. }