2012-08-02 3 views
1

두 프로젝트에서 OneToMany 관계를 성취하는 방법을 아는 사람은 누구나 있습니다. (크로스 데이터베이스를 사용하는 것이 좋습니다. 둘 다 자체 프로젝트 구조, 네임 스페이스 및 데이터베이스가 있음).OneToMany 교차 프로젝트 엔티티 (Symfony2/Doctrine)에 대한 관계

Movie.php (엔티티 프로젝트 A)

class Movie { 

    // ... some other properties 

    /** 
    * @ORM\OneToMany(targetEntity="Moviechild/Project B", mappedBy="movie") 
    */ 
    protected $moviechilds; 

    // ... 

및 프로젝트 B의 다른 엔티티 :

Moviechild.php

의 내가 프로젝트 (A)에 하나의 엔티티 있다고 가정 해 봅시다 (개체 프로젝트 B)

class Moviechild { 

    // ... 

    /** 
    * @ORM\ManyToOne(targetEntity="Movie/Project A", inversedBy="moviechilds") 
    * @ORM\JoinColumn(name="movie_id", referencedColumnName="id") 
    */ 
    protected $movie; 

    // ... 

답변

2

프로젝트 A의 AppKernel 안에 ProjectBBundle을 인스턴스화해야하며 그 반대의 경우도 마찬가지입니다.

이어서 사용 올바른 네임targetEntity 속성 주석 내부 :

Movie.php (엔티티 프로젝트 A)

namespace ProjectABundle\Entity; 

class Movie { 
    /** 
    * @ORM\OneToMany(targetEntity="ProjectBBundle\Entity\Moviechild", mappedBy="movie") 
    */ 
    protected $moviechilds; 

    // ... 

Moviechild.php (엔티티 프로젝트 B)

namespace ProjectBBundle\Entity; 

class Moviechild { 
    /** 
    * @ORM\ManyToOne(targetEntity="ProjectABundle\Entity\Movie", inversedBy="moviechilds") 
    * @ORM\JoinColumn(name="movie_id", referencedColumnName="id") 
    */ 
    protected $movie; 

    // ... 
+0

적합 여부 연구가 필요한가? – Florent

+0

예 Florent, 사실 저는 프로젝트를 바꾸고 있었기 때문에 실제로 다르게해야했습니다. 하지만 답장을 보내 주셔서 감사합니다. 베스트 – Mike