Я пытаюсь разработать систему друзей, и мне нужно отношение Many-To-Many к объектам User; на данный момент, это то, что я сделал:Самостоятельное отношение «многие ко многим» с дополнительными полями?
/**
* @ORM\ManyToMany(targetEntity="User", mappedBy="friends")
*/
protected $friendsWith;
/**
* @ORM\ManyToMany(targetEntity="User", inversedBy="friendsWith")
* @JoinTable(name="friends",
* joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="friend_user_id", referencedColumnName="id")}
* )
*/
protected $friends;
Но я хотел бы иметь некоторые дополнительные поля для этих отношений, например дата создания или государство (принято, в ожидании, ...); Я создал другой объект «Друг», и я хотел бы, чтобы этот объект использовался в качестве ссылки между друзьями. Но я не знаю, как это сделать ...
У вас есть идеи?
Спасибо!
Но я не вижу здесь ассоциаций. :/ Пользователь -> OneToMany -> Друг, Друг -> ManyToOne -> Пользователь? Существует 3 класса, но только 2 здесь, потому что это самосообщение на пользователе. –
Я отредактировал свой ответ, проверьте, ясно ли это сейчас. –
Ок, я думаю, я понимаю, это в основном та же идея, но я просто сопоставляю с другим классом, а не непосредственно с пользователем, не так ли? –