1

这是我的表格:

$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 中带有验证注释的属性:

/**
     * @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组时,所有其他属性都经过验证。这意味着,我所做的一切,密码属性都没有经过验证。

有人知道我在做什么错吗?非常感谢。

4

1 回答 1

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'),
        );
    }

和另一个一样。

于 2013-04-03T18:14:40.687 回答