src/Form/ReviewerType.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use Symfony\Component\Form\AbstractType;
  4. use Symfony\Component\Form\FormBuilderInterface;
  5. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  6. use Symfony\Component\Form\FormEvent;
  7. use Symfony\Component\Form\FormEvents;
  8. /**
  9.  *
  10.  * @author wendell.zheng <wxzheng@ustc.edu.cn>
  11.  */
  12. class ReviewerType extends AbstractType
  13. {
  14.     public function buildForm(FormBuilderInterface $builder, array $options)
  15.     {
  16.         $builder->add('reviewBatch'null, [
  17.             'label' => '评审批次',
  18.             'disabled' => true
  19.         ])
  20.             ->add('username'null, [
  21.             'label' => '用户名',
  22.             'required' => true
  23.         ])
  24.             ->add('name'null, [
  25.             'label' => '姓名'
  26.         ]);
  27.         $builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
  28.             $reviewer $event->getData();
  29.             if (! $reviewer || null === $reviewer->getId()) {
  30.                 $form $event->getForm();
  31.                 $form->add('password'PasswordType::class, [
  32.                     'label' => '密码',
  33.                     'mapped' => false,
  34.                     'required' => true
  35.                 ]);
  36.             }
  37.         });
  38.     }
  39. }