大佬教程收集整理的这篇文章主要介绍了symfony-forms – Symfony 2.8 / 3.0升级:如何处理带有可变参数的表单类型?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
# app/config/config.yml parameters: genders1: m: Male f: Female genders2: # This makes no sense at all,but it is for the example purpose! h: Horse t: Turtle
然后,我宣布了两个这样的服务:
<!-- src/AppBundle/@R_801_5550@es/config/services.xml --> <service id="app.form.type.gender1" class="AppBundle\Form\Type\genderType"> <argument>%genders1%</argument> <tag name="form.type" alias="gender1" /> </service> <service id="app.form.type.gender2" class="AppBundle\Form\Type\genderType"> <argument>%genders2%</argument> <tag name="form.type" alias="gender2" /> </service>
正如您所看到的,我使用相同的genderType类用于2种自定义表单类型(包含gender1和gender2别名),我可以像这样使用:
$builder ->add('field1','gender1') ->add('field2','gender2');
这允许我在一个具有不同输入参数的类(genderTypE)中添加一些通用逻辑(在这个例子中,我有比2更多的可能性).
但是从Symfony 2.8开始,不推荐使用服务别名添加字段.类名必须作为第二个参数传递,如下所示:
$builder->add('field1',genderType::class)
那么如何才能区分我的2个服务(每个服务都没有相同的输入参数)?
创建gender1Type和gender2Type扩展一个抽象的genderType类会非常痛苦,因为我必须用空内容创建很多类.
您是否知道如何在Symfony 2.8中实现我的模式,保持服务具有不同的输入参数,但不创建很多类?
答案是我正在做的模式不再可能,所以我看到了我的问题的两个解决方案:
>创建与我的自定义类型的服务一样多的类,而不是一直使用相同的类,并使这些类扩展为抽象类(在我的示例中:创建扩展AbstractgenderType抽象类的gender1Type和gender2Type类)>只保留一个类,但添加选项以传递我的特定参数.
以上是大佬教程为你收集整理的symfony-forms – Symfony 2.8 / 3.0升级:如何处理带有可变参数的表单类型?全部内容,希望文章能够帮你解决symfony-forms – Symfony 2.8 / 3.0升级:如何处理带有可变参数的表单类型?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。