0

我发现了这个:“如何使用 FOSRestBundle 和 Symfony 表单处理嵌套的 json”,但接受的回复是:“使用表单事件手动制作未映射的表单和绑定数据”

play 中,您可以编写自己的数据绑定器,但对于大多数格式(、、、xml... json),您可以根据Content-Typehttp 标头自动获取数据(此处@BodyParser.Of(BodyParser.Json.class)不是必须的),有一些众所周知可用的数据绑定器(来自 Spring 或任何地方)。一个产品可以有一个项目列表,即便如此,您也可以自动将请求正文绑定到表单

PHP/Symfony 还没有学习如何解决这个问题?如果我在 php + symfonmy 中创建 API REST,我需要编写某种“解析器”吗有人可以分享指向帖子的链接或带有解决方案的示例吗?

PD:我使用 play 示例是因为我不是经验丰富的 Web 开发人员(PHP 较少),所以把它当作我的 mcve。

提前致谢。

4

2 回答 2

1

要解决此问题,请确保表单上具有关系的所有字段都已明确定义:

$builder->add('field_simple')
        ->add('field_entity')
...

上面的代码将不起作用,因为字段“field_entity”将被视为另一个简单字段,您必须定义实体的所有字段或至少定义感兴趣的字段,例如:

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

此致...

于 2018-03-23T20:43:50.770 回答
0

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

  1. 将 JSON 反序列化为实体
  2. 按照您的建议使用表格处理请求

在我的项目中,我总是使用第二种方法,因为它很容易从数据库加载的实体中更新实体并处理数据的验证。

我给你一个旧版本的链接,但或多或​​少还是一样的knp 大学

我希望这可以帮助你

于 2018-03-23T15:46:13.633 回答