In Doctrine wird das Verbinden von Daten zwischen Datenbanken technisch nicht von einer entworfenen Funktion "unterstützt", aber Sie können es schaffen, indem Sie Doctrine etwas tricksen.
Wenn Sie eine Beziehung zwischen Entitäten erstellen möchten, müssen sie dieselbe Verbindung verwenden: dieselbe Datenbank.
Der Schlüssel zu mehreren Datenbanken bekommen ist in Ihren Entitätsklassen zu arbeiten, müssen Sie die Tabellennamen des Unternehmens mit einem Präfix des Namen der Datenbank angeben, zu dem die Tabelle gehört. Hier ist ein Beispiel Anmerkungen mit:
<?php
namespace Demo\UserBundle\Entity;
use DoctrineORMMapping as ORM;
/**
* Demo\UserBundle\Entity\User
*
* @ORMTable(name="users.User")
*/
class User implements
{
/* ... */
}
und
<?php
namespace Demo\PostBundle\Entity;
use DoctrineORMMapping as ORM;
/**
* Demo\PostBundle\Entity\Post
*
* @ORMTable(name="posts.Post")
*/
class Post implements
{
/* ... */
}
und die Beziehungstabelle:
<?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 ein Artikel über sie.
Hoffe diese Hilfe
Grazie! Und kann ich diese Datenbanknamen-Zeichenfolge als einen Konfigurationsparameter festlegen? Ciao! – ShinDarth
hi @ShinDarth mit der Doktrin Annotation ich denke, ist nicht möglich, fügen Sie Parameter ein, aber Sie können versuchen, mit der XML-Annotation und setzen Sie einen Parameter mit% db_name_1% hoffe diese Hilfe – Matteo
Hallo @ShinDarth haben Sie meine Lösungen versucht? Funktioniert es? – Matteo