如何动态配置验证组

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.0,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何动态配置验证组

有时需要高级逻辑来确定验证组。如果不能通过简单的回调确定它们,则可以使用服务。创建实现的服务__invoke它接受FormInterface作为一个参数。

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
/ / src / AppBundle /验证/ ValidationGroupResolver.php名称空间AppBundle验证使用ob娱乐下载组件形式FormInterfaceValidationGroupResolver私人service1私人service2公共函数__constructservice1service2->service1 =service1->service2 =service2;}/ * * *@paramFormInterface $form *@return数组* /公共函数__invoke(FormInterface形式数组();/ /……确定应用哪些组并返回一个数组返回;}}

然后在您的表单中,注入解析器并将其设置为validation_groups

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
/ / src / AppBundle /形式/ MyClassType.php;名称空间AppBundle形式使用AppBundle验证器ValidationGroupResolver使用ob娱乐下载组件形式AbstractType使用ob娱乐下载组件OptionsResolverOptionsResolverMyClassType扩展AbstractType私人groupResolver公共函数__construct(ValidationGroupResolvergroupResolver->groupResolver =groupResolver;}/ /……公共函数configureOptions(OptionsResolver解析器解析器->setDefaults (数组“validation_groups”= >->groupResolver));}}

这将导致表单验证器调用组解析器来设置验证时返回的验证组。

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