0
之间的连接我有三个表:如何映射三个表
- 游戏
columns: id | name
(如1 |晕。) - 自己
columns: id | type_id | type_name
(如1 | 1 |上的心愿。) - 用户
columns: id | name
(如:1 |托梅克)
现在我已经是这些表之间的连接ManyToMany
:
用户(表user_own
)
/**
* @ORM\ManyToMany(targetEntity="Own")
* @ORM\JoinTable(
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="type_id", referencedColumnName="id")}
*)
*/
自己(表own_game
)
/**
* @ORM\ManyToMany(targetEntity="Game")
* @ORM\JoinTable(
* joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="game_id", referencedColumnName="id")}
*)
*/
我的查询:
public function getOwned() {
return $this->getEntityManager()
->createQuery('
SELECT u, o, g FROM AcmeGoBundle:User u
JOIN u.owners o
JOIN u.games g
')
->getResult();
}
我可以检索游戏通过partic资ular 用户,但我无法连接类型的所有权。我怎样才能做到这一点?
你只需要表格 - 用户和游戏。 Doctrine将负责创建连接表。 – moonwave99
我有'用户'和'游戏'表。我需要在他们之间编写'ManyToMany'? –
是的,如果你的应用有这样的关系[我相信]。 – moonwave99