我希望能够为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),
),
))
;
有没有办法将它们分配给验证约束?
就我而言,我有validation groups depending on submitted data
提前感谢您的建议
答案 0 :(得分: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));
很抱歉,如果我在发布问题并在...之后立即回复而被滥用。