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

API REST php7 symfony 3.4 - Databind json to forms

我发现了这个: but the acepted reply was:

play, you can write your own data binder but for most formats(xml, json, ...), you can take the data automatically based on the Content-Type http header (the @BodyParser.Of(BodyParser.Json.class) is not mandatory here to get it working), there are some well know data binders available(from Spring or wherever). A product can have a list of items, and even so, you can bind the request body to a form automatically.

PHP/Symfony还没学会如何解决这个问题? 如果我在 php + symfonmy 中创建一个 API REST,我需要编写某种 "parser" 之类的 ? 有人可以分享 link 到 post 或一个解决这个问题的例子吗?

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

提前致谢。

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

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

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

我给你一个 link 的旧版本,但或多或​​少保持不变 knp university

希望对您有所帮助

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

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

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

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

最好的问候...