如何根据提交的数据选择验证组

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.2,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

如何根据提交的数据选择验证组

如果您需要一些高级逻辑来确定验证组(例如,基于提交的数据),您可以设置validation_groups数组回调的选项:

12 3 4 5 6 7 8 9 10 11 12 13
使用应用程序实体客户端使用欧宝娱乐app下载地址组件OptionsResolverOptionsResolver/ /……公共函数configureOptions(OptionsResolver解析器解析器->setDefaults ([“validation_groups”=>[客户端::类,“determineValidationGroups”,],]);}

这将调用静态方法determineValidationGroups ()客户端在提交表单后,但在执行验证之前,初始化。Form对象作为参数传递给该方法(参见下一个示例)。您还可以使用关闭

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
使用应用程序实体客户端使用欧宝娱乐app下载地址组件形式FormInterface使用欧宝娱乐app下载地址组件OptionsResolverOptionsResolver/ /……公共函数configureOptions(OptionsResolver解析器解析器->setDefaults ([“validation_groups”= >函数(FormInterface形式数据形式->getData ();如果(客户端::TYPE_PERSON = =数据->方法()){返回“人”];}返回“公司”];}));}

使用validation_groups选项将覆盖正在使用的默认验证组。如果你想验证实体的默认约束,你必须调整如下选项:

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
使用应用程序实体客户端使用欧宝娱乐app下载地址组件形式FormInterface使用欧宝娱乐app下载地址组件OptionsResolverOptionsResolver/ /……公共函数configureOptions(OptionsResolver解析器解析器->setDefaults ([“validation_groups”= >函数(FormInterface形式数据形式->getData ();如果(客户端::TYPE_PERSON = =数据->方法()){返回“默认”“人”];}返回“默认”“公司”];}));}

您可以在关于验证组和默认约束的文章中找到有关如何工作的更多信息验证组

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。