shopware - 如何在 Shopware 6 中为 OneToOneAssociationField 使用继承的标志
问题描述
我在 ProductDefinition 中有一个新的 OneToOneAssociationField,其产品扩展名具有 Inherited() 作为附加标志。对应的 EntityDefinition 也有一个带有 ReverseInherited() 标志的 OneToOneAssociationField。如果我保存主产品,则该产品的外键“testproductextension_id”是正确填写的。但是继承列只有父元素的 id,父元素以及所有子元素都会发生这种情况。如果我现在手动将此 id 与“testproductextension_id”交换,则也会为子元素加载附加数据。这意味着,就我自己可以检测到的问题而言,不是“testproductextension_id”而是“product_id”将保存在“testproductextension”中,有谁知道为什么会发生这种情况?
//ProductExtension
$collection->add(
(new FkField('testproductextension_id', 'vrdataId', TestProductExtensionDefinition::class))->addFlags(new Inherited())
);
$collection->add(
(new OneToOneAssociationField(
'testproductextension',
'testproductextension_id',
'id',
TestProductExtensionDefinition::class,
false
))->addFlags(new Inherited())
);
//TestProductExtensionDefinition
return new FieldCollection([
(new IdField('id', 'id'))->addFlags(new Required(), new PrimaryKey()),
(new StringField('testname', 'testname'))->addFlags(),
(new OneToOneAssociationField('product', "product_id","id",ProductDefinition::class,false))
->addFlags(new ReverseInherited('testproductextension')),
]);
解决方案
推荐阅读
- ios - 使用 ScrollView 时出现 SwiftUI 错误
- go - 径向梯度中的条带
- c# - 如果 DotMemory Unit 不可用,我如何跳过 xunit 理论?
- json - 如何在 Flutter 中使用 JSON 正文发出 http DELETE 请求?
- python-3.x - 'numpy.ndarray'对象在python中使用lstm预测值时没有属性'iterrows'
- python - 减少 OpenCV 视频写出大小
- python - 如何将未指定数量的列表附加到列表中
- linux - 在 jenkins 管道上使用容器运行 go2xunit
- ruby-on-rails - 复选框所需的 f.input 强制我选择所有框
- android - Firebase 通知突然延迟,因此 Android 在进行 API 调用时没有得到响应