我没有理想如何在symfony中加倍地图实体。
我有桌子
Matches
________
id
u_id1 : reference to user
u_id2 : reference to user
status: enum
现在我不想为每场比赛创造双重记录。
我想在u_id1 = user_id or u_id2 = user_id
加载用户匹配。
所以..我想让我的方法在用户对象智能有用。例如$ user-> getMatches();返回匹配第一个或第二个u_id具有当前用户ID的位置。
有什么想法吗?
答案 0 :(得分:0)
也许你可以尝试这样的事情。 在用户实体
中定义两个关系class Matches {
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="userOneMatches")
* @ORM\JoinColumn(name="u_id1", referencedColumnName="id")
* **/
protected $u_id1;
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="userTwoMatches")
* @ORM\JoinColumn(name="u_id2", referencedColumnName="id")
* **/
protected $u_id2;
}
并在用户实体方法getAllMatches();
中组合所有匹配。
class User {
/** @ORM\OneToMany(targetEntity="Matches", mappedBy="u_id1" **/
protected $userOneMatches;
/** @ORM\OneToMany(targetEntity="Matches", mappedBy="u_id2" **/
protected $userTwoMatches;
public function getAllMatches()
{
// return $userOneMatches + $userTwoMatches
}
}