led*_*neb 5 symfony-forms symfony
我有一个包含复选框和"值字段"的表单.值字段可以是任何内容,文本框,复合字段,集合 - 任何东西.
表单可能如下所示,例如:
field_1_label enabled [x]
value [________]
field_2_label enabled [x]
value sub_field_1 [________]
sub_field_2 [________]
field_3_label enabled [x]
value [________]
Run Code Online (Sandbox Code Playgroud)
当"启用"字段包含时true,一切正常.当"enabled"字段包含时false,我想禁用值字段及其子字段的验证.
因此,当取消选中"启用"时,我将有效地忽略该字段.我仍然会在表单中显示它,但我不会存储数据,我当然不希望它经过验证.
有没有人建议我怎么做?具体来说,我在验证系统忽略值字段和任何潜在的子字段时遇到问题.
在Symfony 2.3中,您可以在validation_groups中使用false来不应用约束:
http://symfony.com/doc/current/book/forms.html#groups-based-on-the-submitted-data
例如,在包含复选框和值字段的字段上:
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver
->setDefaults([
'validation_groups' => function(FormInterface $form) {
// If the form is disabled, don't use any constraints
if ($form->get('enabled_checkbox')->getData() == false) {
return false;
}
// Otherwise, use the default validation group
return 'Default';
}
]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5291 次 |
| 最近记录: |