В Доктрине объединение данных через базы данных технически не поддерживается конструктивной функцией, но вы можете заставить ее работать, обмакнув 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;
}
}
Here статью об этом.
Надеюсь, эта помощь
Grazie! Могу ли я установить эту строку имени базы данных в качестве параметра конфигурации? Чао! – ShinDarth
привет @ShinDarth с аннотацией доктрины Я думаю, что невозможно вставить параметры, но вы можете попробовать с аннотацией xml и поставить параметры с '% db_name_1%' надеюсь, что эта помощь – Matteo
привет @ShinDarth вы пробовали мои решения? Работает? – Matteo