2014-10-22 11 views
2

하나의 엔티티에 두 개의 ManyToMany 관계가 있습니다.엔티티의 동일한 테이블을 가진 ManyToMany - Symfony, Doctrine

먼저 :

/** 
* @ORM\ManyToMany(targetEntity="RFQItem") 
* @ORM\JoinTable(name="rfqitem_to_rfq", 
*  joinColumns={@ORM\JoinColumn(name="rfqitem", referencedColumnName="id")}, 
*  inverseJoinColumns={@ORM\JoinColumn(name="id", referencedColumnName="id")} 
*) 
*/ 
protected $rfqitems; 

둘째 :

/** 
* @ORM\ManyToMany(targetEntity="RFQItem", cascade={"persist"}) 
* @ORM\JoinTable(name="new_rfqitem_to_rfq", 
*  joinColumns={@ORM\JoinColumn(name="rfqitem", referencedColumnName="id")}, 
*  inverseJoinColumns={@ORM\JoinColumn(name="id", referencedColumnName="id")} 
*) 
*/ 
protected $rfq_item; 

문제 엔티티를 생성하는 나에게 dublicated 방법을 제공하기 때문에 나는 내 기관 및 업데이트 스키마를 생성 할 수 없다는 것입니다 :

/** 
* Add rfq_item 
* 
* @param \RFQ\IronilBundle\Entity\RFQItem $rfqItem 
* @return RFQ 
*/ 
public function addRfqItem(\RFQ\IronilBundle\Entity\RFQItem $rfqItem) 
{ 
    $this->rfq_item[] = $rfqItem; 

    return $this; 
} 
오류가 발생합니다

하나는 이전에 만든 RFQitems를 추가,하지만 두 번째 새 RFQitems를 만드는 것입니다,이 모두가 하나 개의 형태로되어 있기 때문에

Fatal error: Cannot redeclare RFQ\IronilBundle\Entity\RFQ::addRfqitem() 

나는, 하나의 엔티티에이 두 관계가 필요합니다. 이 문제를 해결하려면 어떻게해야합니까?

답변

1

Doctrine은 필드를 기반으로 이름이있는 메소드를 생성합니다. 필드는 매우 유사합니다. Doctrine은 끝 "s"을 생략하고 밑줄을 긋고 문자열을 소문자로 변환합니다. 필드는 $rfqitem$rfqitem처럼 보입니다. 보시다시피 Doctrine은 두 개의 절대적으로 동일한 이름으로 필드를 볼 것입니다. 필드 이름을 $rfqitems, $rfq_item로 바꿔야합니다.

$oldRFQItems$newRFQItems과 같은 의미 론적 표현을 시도해보십시오.

관련 문제