0

我希望能够在 Form 类中为特定验证组添加额外的验证约束。我怎么能那样做?

从 Symfony 2.1 开始,在构建表单时添加验证如下所示:

use Symfony\Component\Validator\Constraints\MinLength;
use Symfony\Component\Validator\Constraints\NotBlank;

$builder
    ->add('firstName', 'text', array(
        'constraints' => new MinLength(3),
    ))
    ->add('lastName', 'text', array(
        'constraints' => array(
            new NotBlank(),
            new MinLength(3),
        ),
    ))
;

来源

有没有办法将它们分配给验证约束?

就我而言,我根据提交的数据有验证组

提前感谢您的建议

4

1 回答 1

3

好的,这个解决方案实际上非常简单。

查看Constraint类,我注意到暴露的 $groups 属性和 addImplicitGroupName(string $group) 方法。

当你知道这一点时,你就知道了一切:

$cv1 = new NotBlank();
$cv1->groups = array('myGroup');
$cv2 = new NotNull();
$cv2->groups = array('myGroup');
$myCnstrs = array(
    'constraints' => array(
         $cv1,
         $cv2,
     )
);

$myOtherOptions = array(
     ...
);

$builder->add('myField', null, array_merge($myCnstrs,$myOtherOptions));

抱歉,如果我通过发布问题并在之后立即回复来滥用...

于 2013-07-31T05:58:56.703 回答