<?php
namespace App\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\FormEvent;
use Symfony\Component\Form\FormEvents;
/**
*
* @author wendell.zheng <wxzheng@ustc.edu.cn>
*/
class ReviewerType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('reviewBatch', null, [
'label' => '评审批次',
'disabled' => true
])
->add('username', null, [
'label' => '用户名',
'required' => true
])
->add('name', null, [
'label' => '姓名'
]);
$builder->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
$reviewer = $event->getData();
if (! $reviewer || null === $reviewer->getId()) {
$form = $event->getForm();
$form->add('password', PasswordType::class, [
'label' => '密码',
'mapped' => false,
'required' => true
]);
}
});
}
}