OneToMany 関係を持つ 2 つのエンティティEntity1とEntity2がありますが、それらは 2 つの MySQL データベースに存在します。
これらのエンティティを Symfony で関係を持って実装するにはどうすればよいですか?
これらのエンティティを実装する 2 つの別個のバンドルを作成することは可能ですか?
OneToMany 関係を持つ 2 つのエンティティEntity1とEntity2がありますが、それらは 2 つの MySQL データベースに存在します。
これらのエンティティを Symfony で関係を持って実装するにはどうすればよいですか?
これらのエンティティを実装する 2 つの別個のバンドルを作成することは可能ですか?
Doctrine では、データベース間でデータを結合することは、設計された機能によって技術的に「サポート」されていませんが、Doctrine を少しトリックすることで機能させることができます。
エンティティ間の関係を構築する場合は、同じ接続、つまり同じデータベースを使用する必要があります。
複数のデータベースを機能させるための鍵は、エンティティ クラス内にあります。テーブルが属するデータベースの名前のプレフィックスを付けて、エンティティのテーブル名を指定する必要があります。注釈を使用した例を次に示します。
<?php
namespace Demo\UserBundle\Entity;
use DoctrineORMMapping as ORM;
/**
* Demo\UserBundle\Entity\User
*
* @ORMTable(name="users.User")
*/
class User implements
{
/* ... */
}
と
<?php
namespace Demo\PostBundle\Entity;
use DoctrineORMMapping as ORM;
/**
* Demo\PostBundle\Entity\Post
*
* @ORMTable(name="posts.Post")
*/
class Post implements
{
/* ... */
}
および関係テーブル:
<?php
namespace Demo\PostBundle\Entity;
use DoctrineORMMapping as ORM;
/**
* Demo\PostBundle\Entity\Post
*
* @ORMTable(name="posts.Post")
*/
class Post implements
{
/**
* @ORM\ManyToOne(targetEntity="\Demo\UserBundle\Entity\User")
**/
private $user;
/* ... */
/**
* Set user
*
* @param \Demo\UserBundle\Entity\Site $site
* @return Post
*/
public function setUser($user)
{
$this->user = $user;
return $this;
}
/**
* Get user
*
* @return \Demo\UserBundle\Entity\Site
*/
public function getUser()
{
return $this->user;
}
}
ここにそれに関する記事があります。
この助けを願っています