Я пытаюсь создать какой-то инвентарь:
(Следующий код явно не полный)
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, но не нашел способа «исправить» мою проблему.
Спасибо
Для этого потребуется уникальный ключ, чтобы различать несколько элементов, подключенных к одному и тому же пользователю.
Просто создайте сущность UserItems с первичным ключом и соответствующие отношения OneToMany и ManyToOne.
Других решений пока нет …