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。
提前致谢。
根据我的经验,您可以通过两种方式实现此目的:
- 将 JSON 反序列化为一个实体
- 按照您的建议使用表单处理请求
在我的项目中,我总是使用第二种方法,因为它很容易从数据库加载的实体更新实体并处理数据验证。
我给你一个 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,
...
))
...
最好的问候...
我发现了这个:
在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" 之类的
PD:我使用 play 示例是因为我不是经验丰富的 Web 开发人员(PHP 中较少),所以把它当作我的 mcve。
提前致谢。
根据我的经验,您可以通过两种方式实现此目的:
- 将 JSON 反序列化为一个实体
- 按照您的建议使用表单处理请求
在我的项目中,我总是使用第二种方法,因为它很容易从数据库加载的实体更新实体并处理数据验证。
我给你一个 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,
...
))
...
最好的问候...