Symfony形式;插入新关系而不是更新;集合

时间:2017-12-08 16:33:00

标签: symfony doctrine symfony-forms symfony-3.3

所以我有以下内容:

$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中设置此关系字段的正确方法是什么,因此它不会递归?

0 个答案:

没有答案