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

时间:2016-03-19 17:49:50

标签: php symfony doctrine-orm many-to-many entities

我正在尝试创建某种库存:

(以下代码显然不完整)

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")

我已查阅了docTines joinTable和joinColumns以及ManytoMany文档,但我找不到“修复”我的问题的方法。

由于

1 个答案:

答案 0 :(得分:1)

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

只需使用主键创建UserItems实体,并对应OneToMany和ManyToOne关系。