如何在实体之间创建两次关系


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
}

我的问题是用户可以两次甚至更频繁地拥有相同的项目。有没有办法告诉教义不要在这些关系上创建唯一的键,或者我必须创建某种映射实体?

像这样:

* @ORM'ManyToMany(targetEntity="Item", fetch="EAGER", indexBy="NULL")

我已经查找了学说jointable和joinColumns和ManytoMany文档,但我没有找到"修复"我的问题的方法。

谢谢

这将需要一个唯一的键来区分连接到同一用户的多个项目。

只需创建具有主键的 UserItems 实体,并建立 OneToMany 和 ManyToOne 关系即可。