我認爲你可以做簡單的ManyToMany單向映射。關係只涉及兩個用戶。這會在數據庫中創建額外的記錄(A - > B和B - > A),但我認爲它應該按照您的要求工作。
<?php
/** @Entity */
class User
{
/**
* @ManyToMany(targetEntity="User")
* @JoinTable(name="alternateUsers",
* joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="alternate_user_id", referencedColumnName="id")}
* )
*/
private $alternateUsers;
public function __construct() {
$this->alternateUsers = new \Doctrine\Common\Collections\ArrayCollection();
}
public function addAlternateUser(User $user) {
$this->alternateUsers[] = $user;
$user->alternateUsers[] = $this;
}
}
有一個在雙向例如[文檔](http://docs.doctrine-project.org/projects/doctrine-orm/en/2.1/reference/association-mapping.html#many-to-many -self-參考)。它可以成爲你的出發點。 –
@MolecularMan這個例子在實體中使用2個字段,但我只想要一個。雖然我爲一個用戶添加了一些鏈接人員,但他們也可以在同一個字段中使用另一個人員。 –
我想如果你刪除'$ friendsWithMe'和'inversedBy',它應該按照你想要的那樣工作。 –