如何两次创建实体之间的关系
How can I create a relation between entities twice
我正在尝试创建某种库存:
(下面的代码显然不完整)
class User
{
/**
* @ORM\ManyToMany(targetEntity="Item", fetch="EAGER")
* @ORM\JoinTable(name="character_inventory_mm",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="item_id", referencedColumnName="id")}
* )
*/
private $inventory;
//etc
}
我的问题是一个用户可以拥有相同的物品两次甚至更多次。
有没有办法告诉 Doctrine 不要在这些关系上创建唯一键,或者我必须创建某种映射实体?
类似于:
* @ORM\ManyToMany(targetEntity="Item", fetch="EAGER", indexBy="NULL")
我已经查阅了 joinTable 和 joinColumns 以及 ManytoMany 文档,但我没有找到 "fix" 我的问题的方法。
谢谢
这将需要一个唯一的键来区分连接到同一用户的多个项目。
只需使用主键和相应的 OneToMany 和 ManyToOne 关系创建 UserItems 实体。
我正在尝试创建某种库存:
(下面的代码显然不完整)
class User
{
/**
* @ORM\ManyToMany(targetEntity="Item", fetch="EAGER")
* @ORM\JoinTable(name="character_inventory_mm",
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="item_id", referencedColumnName="id")}
* )
*/
private $inventory;
//etc
}
我的问题是一个用户可以拥有相同的物品两次甚至更多次。 有没有办法告诉 Doctrine 不要在这些关系上创建唯一键,或者我必须创建某种映射实体?
类似于:
* @ORM\ManyToMany(targetEntity="Item", fetch="EAGER", indexBy="NULL")
我已经查阅了 joinTable 和 joinColumns 以及 ManytoMany 文档,但我没有找到 "fix" 我的问题的方法。
谢谢
这将需要一个唯一的键来区分连接到同一用户的多个项目。
只需使用主键和相应的 OneToMany 和 ManyToOne 关系创建 UserItems 实体。