如何更改FosUserBundle表单中的数据接收格式?

我正在尝试使用FosUserBundle函数创建一个API应用程序。

我无法更改数据传输格式,实际上,如果我以这种方式发送带有参数的请求,其工作原理如下:

{"fos_user_registration_form":
    {
        "username":"test",
        "plainPassword":
                           {
                               "first":"123456",
                               "second":"123456"
                           },
        "email":"test@test.com",
        "name":"test"
     }
}

但是,如果我更改字符串fos_user注册表单 (例如使用字符串用户) ,使其更加清晰,成为公共API,则不再有效。

有可能改变这种格式?

谢谢大家的答案。


我认为你应该创建另一个处理所需信息的动作(休息控制器/动作),这将是:

{
        "username":"test",
        "plainPassword": "123456",
        "email":"test@test.com",
        "name":"test"
}

在那里你可以使用表单或手动处理验证,并使用管理器保存。

我没有关于如何操作的详细流程,但基本上可以使用fos_user在DI容器上注册的服务,如:

fos_user.registration.form.factory FOS UserBundle Form Factory FormFactory
fos_user.registration.form.type FOS UserBundle Form Type RegistrationFormType fos_user.user_manager FOS UserBundle Doctrine UserManager

这将基本上允许您执行所有必需的验证,但是可以从最终的API用户自定义请求主体,另外还可以让您拥有更多的控制权并且在更新时更安全。


我终于找到了解决我的问题的方法!

表单选项下,名为name的FosUserBundle配置中有一个选项。

我在我的配置下面发帖以获得更好的理解(在这种情况下,我想更改表单注册名称):

fos_user:
db_driver: orm
firewall_name: login
user_class: SBUserBundleEntityUser
registration:
    form:
        name: user

最好的祝福。

链接地址: http://www.djcxy.com/p/91691.html

上一篇: How can I change the data receiving format in a FosUserBundle form?

下一篇: FOSUserBundle and persisting in database