Я немного запутался в том, как добавить сопоставление ассоциаций для моей проблемы в symfony.
У меня есть две сущности: Пользователь и Друзья.
Пользовательская таблица имеет идентификатор в качестве первичного ключа (авто). В таблице друзей есть столбцы с идентификаторами (авто, первичный ключ), userId и friendId. FriendId также является пользователем в таблице User.
Таблица друзей:
ID userId friendsId
---------------------
1 564 123
2 564 345
3 777 456
User Table:
ID Name
---------------------
123 Alfons
345 Paul
456 Guiseppe
564 Mary
777 Belinda
Теперь я хочу сопоставить две таблицы, чтобы я мог вызвать функцию в моем Userobject, например, скажем, getFriends(): User. Эта функция должна возвращать объекты Usersobjects, ссылающиеся на таблицу друзей, в которой хранится мой идентификатор пользователя.
Правильным способом должна быть ассоциация «один ко многим», однонаправленная с таблицей соединения?
Заранее спасибо;-)






Вот как должны выглядеть поля сущностей
В классе сущности пользователя
/**
* @var int
* @ORM\Column(name = "ID", type = "integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy = "AUTO")
*/
private $id;
/**
* @var string
* @ORM\Column(name = "Name", type = "string", length=100, nullable=true)
*/
private $name;
/**
* @var Collection
* @ORM\OneToMany(targetEntity = "Friend", mappedBy = "friendUser")
* @ORM\JoinTable(name = "User")
*/
private $friends;
В классе Friend Entity
/**
* @var int
* @ORM\Column(name = "ID", type = "integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy = "AUTO")
*/
private $id;
/**
* This is the user
*
* @ORM\ManyToOne(targetEntity = "User", inversedBy = "ID")
* @ORM\JoinColumn(name = "userId", referencedColumnName = "ID")
*/
private $user;
/**
* This is the friends' user entity
*
* @ORM\ManyToOne(targetEntity = "User", inversedBy = "ID")
* @ORM\JoinColumn(name = "friendsId", referencedColumnName = "ID")
*/
private $friendUser;