2
我有兩個實體實體1和實體2與OneToMany關係,但他們住在兩個MySQL數據庫。Symfony and Doctrine:跨數據庫關係
我該如何在Symfony中實現與它們的關係?
是否可以創建兩個分離的bundle來實現這些實體?
我有兩個實體實體1和實體2與OneToMany關係,但他們住在兩個MySQL數據庫。Symfony and Doctrine:跨數據庫關係
我該如何在Symfony中實現與它們的關係?
是否可以創建兩個分離的bundle來實現這些實體?
在學說中,跨數據庫加入數據在技術上並不是由設計特徵「支持」的,但你可以通過一點點欺騙學說來使其工作。
如果你想建立實體之間的關係,那麼他們必須使用相同的連接:同一個數據庫。
獲取多個數據庫工作的關鍵是在您的實體類中,您需要指定實體的表名,並且該表所屬的數據庫的名稱的前綴爲。下面是使用上的註釋的例子:
<?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;
}
}
Here關於它的文章。
希望這個幫助
Grazie!我可以將該數據庫名稱字符串設置爲配置參數嗎?再見! – ShinDarth
嗨@ShinDarth與學說註釋我認爲是不可能的插入參數,但你可以嘗試用XML註釋,並用%'%db_name_1%'把一個參數希望這可以幫助 – Matteo
嗨@ShinDarth你試過我的解決方案嗎?它工作嗎? – Matteo