API REST php7 symfony 3.4-将json数据绑定到表单

API REST php7 symfony 3.4-将json数据绑定到表单,php,json,symfony,symfony-forms,databinder,Php,Json,Symfony,Symfony Forms,Databinder,我发现了这一点:但被拒绝的回答是: 在中,您可以编写,但对于大多数formatsxml、json,…,您可以根据内容类型http头自动获取数据@BodyParser.OfBodyParser.json.class不是使其工作所必需的,Spring或其他任何地方都有一些众所周知的数据绑定器,即便如此 PHP/Symfony还没有学会如何解决这个问题? 如果我在php+symfonmy中创建一个API REST,我需要编写一些解析器,比如? 有人能分享一篇文章的链接或一个例子来解决这个问题吗 PD:

我发现了这一点:但被拒绝的回答是:

在中,您可以编写,但对于大多数formatsxml、json,…,您可以根据内容类型http头自动获取数据@BodyParser.OfBodyParser.json.class不是使其工作所必需的,Spring或其他任何地方都有一些众所周知的数据绑定器,即便如此

PHP/Symfony还没有学会如何解决这个问题? 如果我在php+symfonmy中创建一个API REST,我需要编写一些解析器,比如? 有人能分享一篇文章的链接或一个例子来解决这个问题吗

PD:我之所以使用play示例,是因为我不是一个在PHP方面没有经验的web开发人员,所以将此作为我的mcve


提前感谢。

根据我的经验,您可以通过两种方式实现:

将JSON反序列化为实体 按照您的建议使用表单处理请求 在我的项目中,我总是使用第二种方法,因为从数据库加载的实体更新实体和处理数据验证非常容易

我给你提供了一个旧版本的链接,但大致保持不变


我希望这可以帮助您解决此问题。请确保表单上所有具有关系的字段都已明确定义:

$builder->add('field_simple')
        ->add('field_entity')
...
上述代码不起作用,因为字段“field_entity”与另一个简单字段类似,您必须定义实体的所有字段或至少定义感兴趣的字段,例如:

$builder->add('field_simple')
        ->add('field_entity', EntityType::class, array(
            'class' => CustomEntity::class,
            ...
        ))
...

致以最诚挚的问候…

我尝试过这个,但当我有一个:。我想那是相关实体,你可以用集合类型实现它,我可以用这种表单,