如何动态配置表单验证组

编辑本页

如何动态配置表单验证组

有时需要高级逻辑来确定验证组。如果不能通过回调确定它们,则可以使用服务。创建实现的服务__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
/ / src /验证/ ValidationGroupResolver.php名称空间应用程序验证使用欧宝娱乐app下载地址组件形式FormInterfaceValidationGroupResolver私人service1私人service2公共函数__constructservice1service2->service1 =service1->service2 =service2;}公共函数__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 /形式/ MyClassType.php;名称空间应用程序形式使用应用程序验证ValidationGroupResolver使用欧宝娱乐app下载地址组件形式AbstractType使用欧宝娱乐app下载地址组件OptionsResolverOptionsResolverMyClassType扩展AbstractType私人groupResolver公共函数__construct(ValidationGroupResolvergroupResolver->groupResolver =groupResolver;}/ /……公共函数configureOptions(OptionsResolver解析器无效解析器->setDefaults ([“validation_groups”= >->groupResolver]);}}

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

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
欧宝娱乐app下载地址Symfony 6.2支持通过苏禄人
欧宝娱乐app下载地址Symfony 6.2支持通过Les-Tilleuls.coop