使用枚举的 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;
}
我目前正在构建实体模型,我的一个 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;
}