我尝试为用户设置“关注”功能,因此用户可以关注用户。
我尝试通过添加多对多关系来实现这一点:
@ORM\ManyToMany(targetEntity="User",inversedBy="User",fetch="LAZY",cascade={"persist"})
@ORM\JoinTable=(name="user_followers",
joinColumns={
@ORM\JoinColumn(name="user_id", referencedColumnName="id")
},
inverseJoinColumns={@JoinColumn(name="follower_id",referencedColumnName="id")}
)
现在,doctrine创建一个只有一个字段user_id的表user_user。
我真的不知道如何宣布这个。 有什么想法吗?
答案 0 :(得分:0)
我自己找到了解决方案。
您实际上可以使用自引用多对多解决方案。来自学说网站:
<?php
/** @Entity */
class User
{
// ...
/**
* @ManyToMany(targetEntity="User", mappedBy="myFriends")
*/
private $friendsWithMe;
/**
* @ManyToMany(targetEntity="User", inversedBy="friendsWithMe")
* @JoinTable(name="friends",
* joinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="friend_user_id", referencedColumnName="id")}
* )
*/
private $myFriends;
public function __construct() {
$this->friendsWithMe = new \Doctrine\Common\Collections\ArrayCollection();
$this->myFriends = new \Doctrine\Common\Collections\ArrayCollection();
}
// ...
}