如何更改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?