如何动态地配置表单验证组吗
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.8,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
如何动态地配置表单验证组吗
有时你需要先进的逻辑来确定验证组。如果他们不能由一个简单的回调,您可以使用一个服务。创建一个服务实现__invoke ()
接受一个FormInterface
作为一个参数:
1 2 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娱乐下载\组件\形式\FormInterface;类ValidationGroupResolver{私人美元service1;私人美元service2;公共函数__construct(美元service1,美元service2){美元这- >service1 =美元service1;美元这- >service2 =美元service2;}/ * * *@paramFormInterface美元形式*@return数组* /公共函数__invoke(FormInterface美元形式){美元组=数组();/ /……确定哪些团体申请并返回一个数组返回美元组;}}
然后在表单,注入解析器和设置它validation_groups
:
1 2 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娱乐下载\组件\OptionsResolver\OptionsResolver;类MyClassType扩展AbstractType{私人美元groupResolver;公共函数__construct(ValidationGroupResolver美元groupResolver){美元这- >groupResolver =美元groupResolver;}/ /……公共函数configureOptions(OptionsResolver美元解析器){美元解析器- >setDefaults (数组(“validation_groups”= >美元这- >groupResolver));}}
这将导致表单验证器调用您的组解析器设置验证组验证时返回。
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。