任何人都知道如何在2个项目中完成OneToMany
关系(假设跨数据库明智,两者都有自己的项目结构,命名空间和数据库)。
假设我在项目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;
// ...
答案 0 :(得分:2)
您必须在项目A的ProjectBBundle
内实例化AppKernel
,反之亦然。
然后在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;
// ...