我有一个类别_ids 作为 json 字段的实体,我想添加与类别实体的关联以获取类别的名称 如何做到这一点
这是我的实体定义,这个ManyToManyAssociationField不起作用
protected function defineFields(): FieldCollection
{
return new FieldCollection([
(new IdField('id', 'id'))->addFlags(new Required(), new PrimaryKey()),
(new StringField('group_name','group_name')),
(new JsonField('category_ids', 'category_ids'))->addFlags(new Required()),
(new FkField('shipping_method_id', 'shipping_method_id', ShippingMethodDefinition::class))->addFlags(new Required()),
(new CreatedAtField()),
(new UpdatedAtField()),
(new ManyToOneAssociationField('shippingMethod', 'shipping_method_id', ShippingMethodDefinition::class)),
new ManyToManyAssociationField('category', CategoryDefinition::class, GroupDefinition::class, 'category_ids', 'id'),
]);
}
ManyToMany 关联无法与
JsonField
一起使用,您需要一个 MappingEntityDefinition
,因此需要一个额外的数据库表。
请查看文档
如果您想坚持使用 JsonField,您可以添加带有
Runtime
标志的附加字段并通过事件订阅者设置数据