使用Doctrine代理而不是实体的Symfony表单生成器

问题描述 投票:0回答:1

我想知道为什么我的CollectionType不调用将外键设置为$ this的自定义addCollection函数(因此下次集合为空时)。

然后我发现了有关'by_reference'的信息,但这并不能解决问题,反而使情况更糟。

以我只是做的形式:

$builder->add('myprop', CollectionType::class, [
            'label' => false,
            'entry_type' => MyEntityType::class,
            'entry_options' => [
                'label' => false,
                'new' => $new,
            ],
            'allow_add' => true,
            'allow_delete' => true,
            'by_reference' => false, // instead of not calling add it now throws an error
        ]);

并且MyEntityType只是另一个具有data_class集和其字段的类型

似乎是使用Doctrine代理而不是我的实体,当我收到错误消息时,我将其传递给FormBuilder:

无法确定类“ Proxies \ __ CG __ \ App \ Entity \ MyEntity”中属性“ myprop”的访问类型:属性“ myprop”或方法“ addMyprop()” /“ removeMyprop()”,“ addMyprop()” /“ removeMyprop()”,“ setMyprop()”,“ Myprop()”,“ __ set()”或“ __call()”存在,并且在类“ Proxies \ __ CG __ \ App \ Entity \”中具有公共访问权限MyEntity”。

使用最新的Symfony 4.3(4.3.5)

symfony doctrine formbuilder
1个回答
0
投票

问题不在FormBuilder中,而是在Entity中,因为它是使用复数名称导入的,而Symfony名称生成器试图调用单数方法,但仅存在复数方法...

© www.soinside.com 2019 - 2024. All rights reserved.