我尝试在我的数据库中发布Guide
。我的请求如下:
{
"name": "test",
"comany": 1
}
我的表格:
$builder
->add('name', TextType::class)
->add('company', EntityType::class, array('class' => 'AppBundle:Company', 'allow_extra_fields' => true));
这是有效的,但是在我的前端,使用company
作为对象发出请求会更容易,而不仅仅是传递id。如果我提出这样的请求:
{
"name": "test",
"company": {
"id": 1,
"name": "company1"
}
}
我收到错误Bad Request {"form":{"children":{"name":{},"company":{"errors":["This value is not valid."]}}},"errors":["This value is not valid."]}
我该如何解决这个问题?
答案 0 :(得分:1)
如果您确实需要在请求中传递整个公司对象,那么您需要将请求数据转换为表单可理解的内容。
我会调查Form Events,特别是FormEvents::PRE_SUBMIT
事件。根据文档,连接到此事件将允许您:
- 在将数据提交到表单
之前更改请求中的数据- 在将数据提交到表单之前添加或删除表单字段。