ReflectionException wird ausgelöst, wenn Entitäten in Doctrine aus verschiedenen Datenbanken zugeordnet werden

Ich versuche, Doctrine 2 in einer ZF2-Anwendung zu verwenden, die zwei Module mit jeweils einer eigenen Datenbank enthält. Ich muss datenbankübergreifende Joins verwenden, damit ich Entitäten aus einem Modul Entitäten in einem anderen zuordnen kann.Hier ist ein UML-Diagramm des Setups.

Ich habe versucht, dies in meiner ersten Entität zu verwenden (ich habe irrelevante Parameter entfernt unduse Aussagen):

namespace Client\Entity;

/**
 * A website.
 *
 * @ORM\Entity
 * @ORM\Table(name="users.website")
 * ...
 * @property $server
 */
class Website extends BaseEntity {

    // Other class vars ... 

    /**
     * @ORM\ManyToOne(targetEntity="Server\Entity\Server", inversedBy="websites")
     * @ORM\JoinColumn(name="server_id", referencedColumnName="id")
     */
    protected $server;

Und das in meiner Server-Entität:

namespace Server\Entity;

/**
 * A server.
 *
 * @ORM\Entity
 * @ORM\Table(name="servers.server")
 * ...
 * @property $websites
 */
class Server extends BaseEntity {

   // Other class vars ... 

   /**
    * @ORM\OneToMany(targetEntity="Client\Entity\Website", mappedBy="server")
    */
   protected $websites;

Diese Zuordnung funktioniert perfekt, wenn ich eine neue Website-Entität erstelle (über ein Webformular, das verwendet wird)DoctrineModule\Form\Element\ObjectSelect für die Serververeinigung), aber wenn ich gehe zubearbeiten Auf einer vorhandenen Website wird diese ReflectionException ausgelöst:

Klassenserver \ Entität \ Website existiert nicht

Der vollständige Stack-Tracefinden Sie hier. Wenn auf die Server-Entität über ihre Zuordnung zu einer Website-Entität zugegriffen wird, geht sie aus irgendeinem Grund davon aus, dass alle Entitäten in der vorhanden sindServer\Entity Namespace stattClient\Entity. Was muss ich tun, um sicherzustellen, dass die Server-Entität im richtigen Modul-Namespace angezeigt wird?

Der CLI-Befehlorm:info produziert:

Found 7 mapped entities:
[OK]   Server\Entity\Server
[OK]   Client\Entity\Role
[OK]   Client\Entity\Website
[OK]   Client\Entity\User
[OK]   Client\Entity\Client
[OK]   Client\Entity\Permission
[OK]   Message\Entity\Notification

Aberorm:validate-schema Ergebnisse in:

[Mapping]  OK - The mapping files are correct.
[Database] FAIL - The database schema is not in sync with the current mapping file.

Ich habe dies in jedem meiner Modulemodule.config.php:

'driver' => array(
    __NAMESPACE__ . '_driver' => array(
        'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
        'cache' => 'array',
        'paths' => array(__DIR__ . '/../src/' . __NAMESPACE__ . '/Entity')
    ),
    'orm_default' => array(
        'drivers' => array(
            __NAMESPACE__ . '\Entity' => __NAMESPACE__ . '_driver'
        )
    )
)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage