2012-08-02 107 views
1

任何人都知道如何在2個項目中完成OneToMany關係(假設跨數據庫明智,都有自己的項目結構,名稱空間和數據庫)。OneToMany關於跨項目實體的關係(Symfony2/Doctrine)

比方說,我有一個實體項目A:

Movie.php(實體項目A)

class Movie { 

    // ... some other properties 

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

    // ... 

並形成其他單位在項目B:

Moviechild.php (實體項目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 2012-08-10 09:08:09

+0

是的,謝謝Florent,其實我不得不以不同的方式做,因爲這個項目正在改變。但感謝您的回答,我非常感謝!最好 – Mike 2012-09-12 12:38:27