所以我有以下内容:
$builder
->add('name')
->add('address', AddressType::class, [
'property_path' => 'address'
])
// TODO: Refactor to create new entities that are without ID
->add('person', CollectionType::class, [
'entry_type' => PersonType::class,
'allow_add' => true,
'property_path' => 'persons'
])
;
我使用给定的参数运行我的功能测试,一切都按预期工作。该实体正在填充新的地址关系&里面有2个新人:
'entity' => [
'name' => 'Test',
'person' => [
[
'firstname' => 'one', 'lastname' => 'two'
], [
'firstname' => 'three', 'lastname' => 'four'
]
],
'address' => [
'street' => 'test str.',
]
]
现在,如果我使用以下参数在相同的formtype上运行update:
'entity' => [
'id' => 1,
'name' => 'Test upd',
'person' => [
[
'id' => 1, 'lastname' => 'update'
], [
'firstname' => 'new', 'lastname' => 'person'
]
]
]
它的作用是:它正确地更新id为1的人。问题在于第二个名为'new'的人 - 而不是创建一个新人和更新关系,它只是寻找'entity'中的剩余关系更新身份2的人。
请帮我找到正确配置的方法。
UPDATE :我可以看到正在发生的事情,很可能是因为“实体”关系的反面未在PersonType中定义。在PersonType中设置此关系字段的正确方法是什么,因此它不会递归?