Symfony 4删除RepeatedType密码字段上的默认设置约束(notBlank)

时间:2018-09-27 12:28:02

标签: php symfony symfony4

我在控制器中有表单生成器

$form = $this->createFormBuilder($user)

                 ->add('firstname',TextType::class,array(
                     'label' => 'First name',
                     'attr' => array(
                         'class' => 'form-control',
                         'value' => $user->getFirstname()
                     ),
                 ))
                 ->add('surname',TextType::class,array(
                     'label' => 'Last name',
                     'attr' => array(
                         'class' => 'form-control',
                         'value' => $user->getSurname()
                     )
                 ))
                 ->add('email', EmailType::class, array(
                     'label' => 'Email',
                     'attr' => array(
                         'class' => 'form-control',
                         'value' => $user->getEmail(),
                     ),
                 ))
                 ->add('plainPassword', RepeatedType::class, array(

                     'type' => PasswordType::class,
                     'invalid_message' => 'The password fields must match.',
                     'options' => array('attr' => array('class' => 
                        'password-field')),

                     'first_options'  => array('label' => 'Password'),
                     'second_options' => array('label' => 'Repeat 
                      Password'),
                 ))

如您在plainPassword字段上看到的,没有设置约束。我的意图是让用户在不需要时无需填写此字段,但是,当我提交表单时,会触发NotBlank约束,并且表单也不会提交。我尝试将required设置/添加到FALSE无效。

我什至尝试添加new Blank()约束,但仍然保持默认约束。

是否可以删除此默认notBlank约束??

约束进入的屏幕抓图 enter image description here

1 个答案:

答案 0 :(得分:0)

感谢@AythaNzt的评论。因此,约束在我的“用户实体”类中声明了一个注释

就是这个

 /**
 * @Assert\NotBlank()
 * @Assert\Length(max=4096)
 */
private $plainPassword;

删除了NotBlank() 成为

/**
 * @Assert\Length(max=4096)
 */
private $plainPassword;