2014-05-20 3 views
0

2 개의 번들 : 코어 1 개 (C)와 선택적 1 개 (O).Symfony2/Doctrine : 2 묶음 사이의 OneToMany/ManyToOne

은 내가 (0은 선택 사항이기 때문에 내가 C에 쓸 수 없습니다) C의 엔티티에 관련 ManyToOne를 주입 할

C.

에 엔티티를 참조하는 OneToMany 속성 O에서 엔티티를 생성

resolve_target_entities orm 기능을 보았지만 사용법이 좋지 않습니다. 번들간에 전환하려는 경우에만 보입니다.

어떻게 할 수 있습니까?

안부,

답변

1

EDIT1 :

당신은 단순히 O 번들에 SomeCoreEntity를 확장하고 당신이 필요 추가 할 수 있습니다

<?php 
namespace Vendor\OptionalBundle\Entity; 
use Vendor\CoreBundle\Entity\SomeCoreEntity as BaseEntity; 
use Doctrine\Common\Collections\ArrayCollection; 

Class NewEntity extends BaseEntity 
{ 

/** 
* @ORM\OneToMany(targetEntity="Vendor\OptionalBundle\Entity\NewEntity" mappedBy="coreEntity") 
*/ 
private $optionalEntities; 

public function __construct() { 
    $this->optionalEntities = ArrayCollection(); 
} 

} 

원래 답변 :

글쓰기를 시도 했습니까? 이런 식으로 O 번들 :

<?php 
namespace Vendor\OptionalBundle\Entity 

Class SomeOptionalEntity 
{ 

/** 
* @ORM\ManyToOne(targetEntity="Vendor\CoreBundle\Entity\SomeCoreEntity") 
*/ 
private $coreEntity; 

} 
+0

예,이 부분은 올바르게 생성되었지만 bidirectioanl 연관이 필요합니다. C에서 매개 변수와 주석이 존재하지 않는 경우에도 빌드하는 동안 오류를 제공하지 않는 inversedBy 매개 변수를 추가합니다. –

+0

나는 PHP 매핑을 사용하여 할 수 있다고 생각한다 : http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/php-mapping.html하지만 좋은 장소를 알지 못한다. 코드. –

+0

방금 ​​대답을 업데이 트 –