2017-01-19 4 views
0

Есть ли другой способ, я мог бы написать этот бит кода лучше? Я что-то упустил?Symfony - упорство ManyToMany отношение

$user->addEntity($entity); 
$entity->addUser($user); 


$em = $this->getDoctrine()->getManager(); 
$em->persist($user); 
$em->persist($entity); 
+1

Возможный дубликат [Сохранение многих ко многим отношениям с базой данных в Symfony2] (http://stackoverflow.com/questions/14159307/saving-many-to-many-relationship-to-database-in-symfony2) – akousmata

ответ

0

Вы можете добавить только из ссылки owning side; то вы можете 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 извлекается из БД, и если это не новый объект.

+0

Да , что объясняет все это, спасибо. – Slay33

Смежные вопросы