На этой странице сопоставления ассоциаций есть пример в разделе manytomany. Но я не понимаю, какой объект (группа или пользователь) является стороной-владельцем.
Я тоже добавил код
<?php
/** @Entity */
class User
{
// ...
/**
* @ManyToMany(targetEntity="Group", inversedBy="users")
* @JoinTable(name="users_groups")
*/
private $groups;
public function __construct() {
$this->groups = new \Doctrine\Common\Collections\ArrayCollection();
}
// ...
}
/** @Entity */
class Group
{
// ...
/**
* @ManyToMany(targetEntity="User", mappedBy="groups")
*/
private $users;
public function __construct() {
$this->users = new \Doctrine\Common\Collections\ArrayCollection();
}
// ...
}
Я читаю эту аннотацию следующим образом: Пользователь сопоставлен с группами, поэтому группа - это сущность, которая управляет соединением, и, следовательно, владеющая сторона?
Кроме того, я прочитал это в документах:
For ManyToMany bidirectional relationships either side may be the owning side (the side that defines the @JoinTable and/or does not make use of the mappedBy attribute, thus using a default join table).
Это позволяет мне думать, что Пользователь будет стороной-владельцем, поскольку аннотация для JoinTable определена в этом объекте.