表单类型中的访问请求参数,用于动态修改表单

雷尼埃

我有两种Symfony2不同的形式:一种用于注册仅属于用户类型的字段的普通用户,另一种用于注册公司的字段,另一种仅用于公司类型的字段(两者都有不同的字段),因此它们依赖于FOSU​​serBundle User类,这意味着它们从FOSUser扩展。我应该为用户(通过站点导航的普通用户)添加注册为User和的能力Company,为此,我对这两种选择都做了一个简单的SELECT元素。

我需要“动态”更改FOSUser注册的表单类型,但是找不到一个好的方法,这就是为什么我寻求帮助。

这就是我的想法,也许是一些疯狂的想法,也许是最坏的想法,但这是我所能找到的唯一的东西。

  1. 在处“动态”更改注册类config.yml(强硬不是一个好主意,因为我需要重新加载页面才能使更改生效或无效)

    services:
        user.registration.form.type:
            class: UserBundle\Form\Type\RegistrationFormType
            arguments: [%fos_user.model.user.class%]
            tags:
                - { name: form.type, alias: user_form }
    
    fos_user:
        registration:
            form:
                type: user_form
    
  2. 基于用户数据的形式解释这里的文档,但这个应该是建立在两个步骤的形式,对不对?一个用于选择表单类型,第二个用于显示/显示表单?然后如何使用FOSUserBundle执行此操作?

现在,我只是打电话RegistrationFormType给FOSUser中具有公共字段的字段,但是我需要添加新的表单,有什么想法或方法吗?

劳顿

您可以检测到select元素上的onchange并执行AJAX请求以获取正确的表单?然后,通过AJAX调用的方法获取表单。将FormType设置为service,将请求作为参数传递(Symfony2服务参数-传递当前请求,并在此处http://symfony.com/doc/current/book/service_container.html#injecting-the-request),然后构建您的形式 ?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章