Php Symfony 3-将对象传递给EntityType

Php Symfony 3-将对象传递给EntityType,php,symfony,Php,Symfony,我试图在我的数据库中发布指南。我的请求如下所示: { "name": "test", "comany": 1 } { "name": "test", "company": { "id": 1, "name": "company1" } } 我的表格: $builder ->add('name', TextType::class) ->add('company', EntityType::class, arr

我试图在我的数据库中发布
指南
。我的请求如下所示:

{
  "name": "test",
  "comany": 1
}
{
  "name": "test",
  "company": {
     "id": 1,
     "name": "company1"
   }
}
我的表格:

$builder
        ->add('name', TextType::class)
        ->add('company', EntityType::class, array('class' => 'AppBundle:Company', 'allow_extra_fields' => true));
这是可行的,但在我的前端,将
公司
作为对象,而不仅仅是传递id,这将更容易提出请求。如果我提出这样的请求:

{
  "name": "test",
  "comany": 1
}
{
  "name": "test",
  "company": {
     "id": 1,
     "name": "company1"
   }
}
我得到错误
错误的请求{“form”:{“children”:{“name”:{},“company”:{“errors”:[“This value is not valid.”]}}},“errors”:[“This value not valid.”]}


如何解决这个问题?

如果您确实需要在请求中传递整个公司对象,那么您需要将请求数据转换为表单可以理解的内容

我会特别关注
FormEvents::PRE_SUBMIT
事件。根据文档,连接到此事件将允许您:

  • 在将数据提交到表单之前,更改请求中的数据
  • 在将数据提交到表单之前,添加或删除表单字段