1

任何人都知道如何OneToMany在 2 个项目中建立关系(假设跨数据库,两者都有自己的项目结构、命名空间和数据库)。

假设我在项目 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;

    // ...
4

1 回答 1

2

您必须ProjectBBundle在项目 A中实例化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;

    // ...
于 2012-08-02T13:25:44.843 回答