【发布时间】:2018-09-27 12:28:02
【问题描述】:
我在控制器中有表单生成器
$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() 约束,但它仍然保持默认约束。
有没有办法删除这个默认的notBlankconstraint ??
【问题讨论】:
-
检查您的实体并确认您在 plainPassword 中有 NotBlank() 断言/约束注释
-
其他方法在表单中设置映射=> false。然后,在控制器中获取它以检查它是否有数据并在这种情况下设置它。
-
@AythaNzt ,您的第一条评论就是解决方案。我为该属性添加了 noblank() 断言。非常感谢。