【发布时间】:2021-04-20 14:46:30
【问题描述】:
我目前正在构建实体模型,并且我的 Doctrine 实体之一与外部字典(如 ENUM)具有多对多关系。所以实体字段将是一个枚举数组。
我正在寻找一种方法将其作为我的实体上的数组字段,但将其存储为单独的数据库表。
希望获得任何建议/链接/等。
【问题讨论】:
标签: php doctrine-orm
我目前正在构建实体模型,并且我的 Doctrine 实体之一与外部字典(如 ENUM)具有多对多关系。所以实体字段将是一个枚举数组。
我正在寻找一种方法将其作为我的实体上的数组字段,但将其存储为单独的数据库表。
希望获得任何建议/链接/等。
【问题讨论】:
标签: php doctrine-orm
这个问题有点断章取义,但是..
多对多在您的实体中已经是一个数组(迭代器)。
您可以创建自己的实体充当多对多并将列设置为枚举。
【讨论】:
最后,我决定创建一个实体来存储这个关系。为确保在与父实体取消链接时将其删除,我在 OneToMany 关系端使用了 orphanRemoval=true 选项。
class Entity {
/**
* @ORM\OneToMany(targetEntity="EntityType", mappedBy="entity", orphanRemoval=true)
*/
protected $types;
}
class EntityType {
/**
* @ORM\ManyToOne(targetEntity="Entity")
*/
protected $entity;
/**
* @ORM\Column(type="MyEnum")
*/
protected MyEnum $type;
}
【讨论】: