如何动态配置表单验证组
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.4,现已不再维护。
读本页的更新版本用于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娱乐下载\组件\形式\FormInterface;类ValidationGroupResolver{私人$service1;私人$service2;公共函数__construct($service1,$service2){$这->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娱乐下载\组件\OptionsResolver\OptionsResolver;类MyClassType扩展AbstractType{私人$groupResolver;公共函数__construct(ValidationGroupResolver$groupResolver){$这->groupResolver =$groupResolver;}/ /……公共函数configureOptions(OptionsResolver$解析器){$解析器->setDefaults ([“validation_groups”= >$这->groupResolver]);}}
这将导致表单验证器调用组解析器来设置验证时返回的验证组。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。