6

Symfony2 애플리케이션에서 나는 MainBundle과 활성화 또는 비활성화 할 수있는 별개의 번들을 가지고 있습니다. MainBundle에는 모델과 기본 엔티티이 있어야합니다. OtherBundle에서 에서 보다 동일한 테이블 이름을 가진 법인 법인 MainBundle.Doctrine2/Symfony2 - 동일한 테이블의 여러 엔티티

MainBundle 
- Model 
- Entity (Table name "test") 
- Fixtures 

OtherBundle 
- Entity (Table name "test") 
- Fixtures 

OtherBundle2 
- Entity (Table name="test") 
- Fixtures 

내가 모델하는 @ORM \ 법인@ORM \ MappedSuperclass를 사용한 경우 : MainBundle에서

설비와 함께 또는 MainBundle보다 다른 번들없이로드 할 필요 엔티티 MainBundle 및 OtherBundle에서 @ORM \ 법인에서 다음 Doctrine2 중지 역삼 "테이블이 이미 있습니다"오류가 발생했습니다.

내 모델이 다른 번들의 다른 엔티티에 대해 알아야 할 필요가없는 상속 테이블을 사용할 수 없습니다. @ORM \ DiscriminatorMap 수위는 기타 번들입니다.

이 방법이 있습니까?

+0

http://symfony.com/doc/current/cookbook/doctrine/resolve_target_entity.html :

http://symfony.com/doc/current/cookbook/doctrine/resolve_target_entity.html

말했다되는 것을 여러 엔티티 관리자와 해결책이 될 것 같다 – Cerad

+2

이 링크는 서로 다른 묶음에있는 엔티티간에 동적 관계를 만드는 방법을 보여줍니다. 다른 번들의 엔티티를 연결할 필요가 없습니다. 서로 다른 번들에 동일한 엔티티 이름과 테이블을 갖고 싶습니다. – Thibaut

+0

안녕하세요, 문제에 대한 분명한 해결책은 다른 엔티티 (다른 테이블 이름 사용)를 만드는 것입니다. 동일한 모델에서 확장 할 수 있습니다. 당신은 상속을 할 수 없다고 말하기 때문에 분명합니다. 그래서 db의 용어로도 그렇게 할 수 없습니다. (ORM을 사용하고 있기 때문에) 논리가 없으면 더 정확한 도움을 드릴 수 없습니다. – Nek

답변

1

Jasper N. Brouwer가 언급했듯이, 그것은 본질적으로 동일한 엔티티 및 동일한 테이블이므로, 수행하려는 작업을 수행 할 필요가 없습니다.

는 "SharedEntityBundle"예를 들어라는 이름의 번들에 법인을 만들고 그들이 서로에 대해 알지 못하고 다른 번들에서이 엔티티에 관련하는 resolve_target_entity를 사용합니다. Symfony 2/Doctrine 2: Two Entities for the same table, use one in favour of the other

+0

해결 된 엔티티를 객체로 사용하는 방법을 설명해 주시겠습니까 (예 : 컨트롤러에서 일반 엔티티가 번들에있는 것처럼)? – wiktus239