我认为您可以进行简单的 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;
}
}