Есть ли другой способ, которым я мог бы написать этот кусок кода лучше? Я что-то здесь упускаю?
$user->addEntity($entity);
$entity->addUser($user);$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->persist($entity);
Вы можете добавить только из владеющая сторона отношения; тогда ты можешь persist
только этот объект и очистить его.
Например, если ваши аннотации такие
class User
{
/**
* @ORM\ManyToMany(targetEntity="Entity", inversedBy="users")
* @ORM\JoinTable(name="user_entity")
*/
protected $entities
}
class Entity
{
/**
* @ORM\ManyToMany(targetEntity="User", mappedBy="entities")
*/
protected $users;
}
вы можете сделать это
$user->add($entity);
$em = $this->getDoctrine()->getManager();
$em->flush();
Вы можете пропустить persist
если $user
извлекается из базы данных, и если это не новый объект.
Других решений пока нет …