使用枚举的 Doctrine 数组并将其存储在单独的 table

Working with Doctrine array of enum and store it in a separate table

我目前正在构建实体模型,我的一个 Doctrine 实体与外部字典(如 ENUM)有 ManyToMany 关系。所以实体字段将是一个枚举数组。

我正在寻找一种方法将其作为我实体上的数组字段,但将其存储为单独的数据库 table。

想得到任何advice/links/etc。

这个问题有点断章取意但是..

多对多在您的实体中已经是一个数组(迭代器)。

您可以创建自己的实体作为多对多并将列设置为枚举。

最后,我决定创建一个实体来存储这种关系。为确保在从父实体取消链接时将其删除,我在 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;
}