2016-08-15 5 views
-2

사용자 - 태그 : many - to - many 관계가있는 2 개의 entites가 있습니다.Symfony Doctrine : ManyToMany 연관 제거

class User{ 
    /** 
    * @ORM\ManyToMany(targetEntity="Tag", mappedBy="userList") 
    */ 
    private $tagList; 
} 

class Tag{ 
    /** 
    * @ORM\ManyToMany(targetEntity="User", inversedBy="tagList") 
    * @ORM\JoinTable(name="tags_users") 
    */ 
    private $userList; 
} 

문제

때 나는 분명 사용자의 나는 또한 제거 된 태그의 userList에서 사용자를 제거 할 tagList.

$user->getTagList()->clear(); 

그러나 관절 식 tags_users에 난 아직도 당신이 소유 및 역 측면 연결을 만들려고 노력하지만, 단 하나 개의면을 업데이트하고 생각 태그 사용자 협회

답변

1

을 볼 수 있습니다. http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/association-mapping.html#owning-and-inverse-side-on-a-manytomany-association

@ 워드 프로세서 밖으로

확인 당신은 또한 당신은 태그

class User 
{ 
    function clearTaglist() 
    { 
     foreach ($this->tagList as $tag) { 
      $tag->removeUser($this); 
     } 

     $this->tagList->clear(); 
    } 
} 

class Tag { 
    public function removeUser($user) 
    { 
     $this->userList->removeElement($user); 
    } 
} 

건배

을 취소 사용자 개체에 기능을 추가 할 수 있습니다

$tag->removeUser($user); 

뭔가를 호출해야합니다