这是我的表格:
$forumuser = new Forumuser();
$passwordform = $this->createFormBuilder($forumuser, array('validation_groups' => array('userSettings')))
->add('passwordold', 'password', array('attr' => array('autocomplete' => 'off'), 'required' => false, 'error_bubbling' => true, 'property_path' => false))
->add('password', 'repeated', array( 'type' => 'password',
'invalid_message' => 'user.myprofile.password.repeat',
'options' => array('attr' => array('autocomplete' => 'off'), 'required' => false, 'error_bubbling' => true)
)
)
->getForm();
这是ForumUser.class中带有validationannotations的属性:
/**
* @var string $password
*
* @ORM\Column(name="password", type="string", length=200, nullable=false)
* @Assert\NotBlank(message="forumuser.password.notblank", groups={"userRegister", "userSettings"})
* @Assert\MinLength(limit="4", message="forumuser.password.minlength", groups={"userRegister", "userSettings"})
*/
private $password;
我想使用 userSettings 组,但在绑定后,$ passwordform-> getErrors()为空。当我使用 userRegister 组时,将验证所有其他属性。这意味着,我所做的一切,都没有验证密码属性。
有人知道我做错了什么吗? 非常感谢你。
答案 0 :(得分:0)
You have to define on form type , diiferent group name like this
public function getDefaultOptions(array $options)
{
return array(
'data_class' => '',
'cascade_validation' => true,
'validation_groups' => array('user_settings'),
);
}
和其他人一样。