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
事件。根据文档,连接到此事件将允许您:
- 在将数据提交到表单之前,更改请求中的数据
- 在将数据提交到表单之前,添加或删除表单字段