Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何更改FosUserBundle表单中的数据接收格式?_Php_Symfony_Fosuserbundle - Fatal编程技术网

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

Php 如何更改FosUserBundle表单中的数据接收格式?,php,symfony,fosuserbundle,Php,Symfony,Fosuserbundle,我正在尝试使用FosUserBundle函数创建一个API应用程序 我无法更改数据传输格式,事实上,如果我使用以这种方式构建的参数发送请求,则可以: {"fos_user_registration_form": { "username":"test", "plainPassword": { "first":"123456",

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

我无法更改数据传输格式,事实上,如果我使用以这种方式构建的参数发送请求,则可以:

{"fos_user_registration_form":
    {
        "username":"test",
        "plainPassword":
                           {
                               "first":"123456",
                               "second":"123456"
                           },
        "email":"test@test.com",
        "name":"test"
     }
}
但是,如果我更改字符串fos_用户注册表单,例如使用字符串user,使其更干净,作为一个公共API,将不再有效

是否可以更改此格式


谢谢大家的回答。

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

{
        "username":"test",
        "plainPassword": "123456",
        "email":"test@test.com",
        "name":"test"
}
在这里,您可以使用表单手动处理验证,也可以不使用表单,然后使用管理器保存验证

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

fos\u user.registration.form.factoryfos\UserBundle\form\factory\FormFactory
fos\u user.registration.form.typefos\UserBundle\form\type\RegistrationFormType fos\u user.user\u managerfos\UserBundle\doctor\UserManager


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

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

{
        "username":"test",
        "plainPassword": "123456",
        "email":"test@test.com",
        "name":"test"
}
在这里,您可以使用表单手动处理验证,也可以不使用表单,然后使用管理器保存验证

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

fos\u user.registration.form.factoryfos\UserBundle\form\factory\FormFactory
fos\u user.registration.form.typefos\UserBundle\form\type\RegistrationFormType fos\u user.user\u managerfos\UserBundle\doctor\UserManager


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

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

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

为了更好地理解,我在下面发布了我的配置(在这种情况下,我想更改表单注册名称):


致以最良好的祝愿。

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

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

为了更好地理解,我在下面发布了我的配置(在这种情况下,我想更改表单注册名称):


致以最诚挚的问候。

谢谢您的回复。但是,如果我有自己的控制器/操作,我不能以我想要的方式将请求参数发送到fos_user.registration.form,因为它会返回一个错误。如果我省略标题“fos\u user\u registration\u form”,它不会将数据绑定到表单。谢谢您的回复。但是,如果我有自己的控制器/操作,我不能以我想要的方式将请求参数发送到fos_user.registration.form,因为它会返回一个错误。如果省略标题“fos\u user\u registration\u form”,则不会将数据绑定到表单