2013-09-06 2 views
16

Doctrine 2에 추가 열 또는 추가 속성이있는 many-to-many 연관이있는 조인 테이블을 설정하는 방법은 무엇입니까?Doctrine 2 : 추가 열이있는 조인 테이블을 처리하는 방법

+0

@ThatBlairGuy 난 당신이 [추가 태그] 많이 제거났습니다. 이 편집은 적합했지만 태그를 제거하는 것 외에도 게시물의 모든 측면을 _ 고정해야합니다. 자세한 내용은이 [메타 토론] (https://meta.stackoverflow.com/questions/314488/how-to-deal-with-serial-tag-only-edits-from-sub-2k-users) – ryanyuyu

답변

50

첫째는, 내가이 하지이 존재한다는 것을 설명하자 :

테이블를 (또한 접합 테이블로 또는 상호 참조 테이블 알려진) 조인 (2)를 연결하는 테이블 (또는 그 이상)의 다른 테이블을 기본 키로 동일한 데이터베이스 내에 함께 저장합니다. 이것은 조인 테이블에 외래 키만 포함되며 이러한 추가 열의 위치는 없음을 의미합니다.

그런 테이블에 여분의 열이 필요할 때 더 이상 다른 테이블 간의 "링크"는 아니지만 실제 테이블이됩니다!

Doctrine 2의 관점에서, 더 이상 2 개의 엔티티 사이에 다 대다 관계가 없지만 3 개의 엔티티간에 일대 다/다 대일 연관을 얻습니다.

더 세부 설명은 여기 계속 읽기 :

+0

을 읽어보십시오. 링크가 깨졌습니다. 누구든지 업데이트 할 수 있습니까? –

+2

링크가 업데이트되었습니다! (포맷은 약간 꺼져있을 수 있으며 곧 수정 될 것입니다.) –

+0

감사합니다. 링크를 업데이트 해 주셔서 감사합니다! –

1

, 나는 부분 업데이트를 권장합니다. 대신 전체 이벤트의 엔티티 자체 내에서 LifecycleCallback를 사용 : 태그 :

/** 
* @ORM\Entity 
* @ORM\Table(name="jobs”) 
* @ORM\HasLifecycleCallbacks 
*/ 
class Job 
{ 
    // ... 

    /** 
    * @ORM\PreRemove 
    */ 
    public function preRemoveCallback() 
    { 
     $this->setPerson(null); 
     $this->setCompany(null); 
    } 
} 
관련 문제