delete - symfony 4 repository



Beaucoup-à-plusieurs relation avec des champs supplémentaires? (1)

J'ai peur que vous ayez besoin d'une classe supplémentaire pour faire une telle association. Voici la pointe de la documentation de la doctrine:

Pourquoi les associations plusieurs-à-plusieurs sont-elles moins fréquentes? Parce que souvent vous voulez associer des attributs supplémentaires à une association, auquel cas vous introduisez une classe d'association. Par conséquent, l'association directe plusieurs-à-plusieurs disparaît et est remplacée par des associations un-à-plusieurs / plusieurs-à-un entre les trois classes participantes.

http://www.doctrine-project.org/docs/orm/2.1/fr/reference/association-mapping.html#many-to-many-unidirectional

Je suppose que cela devrait être Friend -> Special Association Class (avec fileds: user_id, friend_id, date de création) -> Friend. Et vous associez Friend à une classe spéciale dans deux fichiers $ myFriends et $ imFriendOf :)

J'essaie de développer un système d'amis, et j'ai besoin d'une relation Many-To-Many sur mes entités utilisateur; pour l'instant, c'est ce que j'ai fait:

/**
 * @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;

Mais j'aimerais avoir des champs supplémentaires pour ces relations, par exemple la date de création ou l'état (accepté, en attente, ...); J'ai créé une autre entité "Friend", et j'aimerais que cette entité soit utilisée comme un lien entre amis. Mais je ne sais pas vraiment comment gérer ça ...

Avez-vous des idées?

Merci !