Symfony 4 删除 RepeatedType 密码字段上的默认设置约束(notBlank)
Symfony 4 Remove a default set constraint (notBlank) on a RepeatedType Password field
我在控制器中有表单生成器
$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
约束被触发并且表单没有被提交。我试过setting/adding、required
到FALSE
,都不行。
我什至尝试添加 new Blank()
约束,但它仍然保持默认约束。
有没有办法删除这个默认的notBlank
限制??
约束启动的屏幕截图
感谢@AythaNzt 的评论。所以约束在我的 'user Entity' class
上断言了一个注释
就是这个
/**
* @Assert\NotBlank()
* @Assert\Length(max=4096)
*/
private $plainPassword;
删除了 NotBlank()
于是变成了
/**
* @Assert\Length(max=4096)
*/
private $plainPassword;
我在控制器中有表单生成器
$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
约束被触发并且表单没有被提交。我试过setting/adding、required
到FALSE
,都不行。
我什至尝试添加 new Blank()
约束,但它仍然保持默认约束。
有没有办法删除这个默认的notBlank
限制??
约束启动的屏幕截图
感谢@AythaNzt 的评论。所以约束在我的 'user Entity' class
上断言了一个注释就是这个
/**
* @Assert\NotBlank()
* @Assert\Length(max=4096)
*/
private $plainPassword;
删除了 NotBlank()
于是变成了
/**
* @Assert\Length(max=4096)
*/
private $plainPassword;