2017-01-19 6 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にして、それをフラッシュすることができます。例えば

、あなたの注釈は、あなたが$userは、DBから取得された場合、それは新しいオブジェクトではない場合は、persistをスキップすることができ、この

$user->add($entity); 

$em = $this->getDoctrine()->getManager(); 
$em->flush(); 

を行うことができ、この

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; 
} 

ようにしている場合。

+0

うんそれはすべてそれを説明する、ありがとう。 – Slay33

関連する問題