1

誰もがOneToMany2つのプロジェクト内で関係を実現する方法を知っています(たとえば、クロスデータベースに関しては、どちらも独自のプロジェクト構造、名前空間、データベースを持っています)。

プロジェクトAに1つのエンティティがあるとします。

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 に答える