I have an entity A with a relation ManyToOne with B but A and B doesn't belong to the same DB schema.
Entity 'A' belongs to MyBundle bundle, and entity 'B' belongs to MyOtherBundle bundle.
The official documentation explain how to work with different connections : multiple schemas = multiple entity manager. But in my case I would like to join both entities.
By doing :
$this->objEm->getRepository('MyBundle:MyEntity')->find($id);
or
$this->objEm->getRepository('MyBundle:MyEntity')->getMyResult($id);
I only call one of my repository, and I guess he's not able to get the other because in my config.yml I can chose only one connection.
doctrine:
dbal:
connections:
connection1:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_schema1_user%"
password: "%database_schema1_password%"
service: "%database_service%"
charset: "Windows-1252"
connection2:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_schema2_user%"
password: "%database_schema2_password%"
service: "%database_service%"
charset: "Windows-1252"
orm:
entity_managers:
em1:
connection: connection1
mappings:
MyBundle: ~
MyOtherBundle: ~
em2:
connection: connection2
mappings:
MyOtherBundle: ~
Result : Whoops, looks like something went wrong.
1/1ReflectionException: Class FQCN\Of\MyBundle\Entity\B does not exist ...
"I know it doesn't exist dude, I want you to look at the good place now : like at FQCN\Of\MyOtherBundle\Entity\B"
How can I force the path to my entity 'B'?
namespace FQCN\Of\MyBundle\Entity; /** * @ORM\Table(name="SCHEMA1.TABLE_1") * @ORM\Entity(repositoryClass="FQCN\Of\MyBundle\Repository\ARepository") */ class A { /** * @ORM\ManyToOne(targetEntity="FQCN\Of\MyOtherBundle\Entity\B") * @ORM\JoinColumn(name="...", referencedColumnName="..."), */ private $b; } namespace FQCN\Of\MyOtherBundle\Entity; /** * @ORM\Table(name="SCHEMA2.TABLE_2") * @ORM\Entity(repositoryClass="FQCN\Of\MyOtherBundle\Repository\BRepository") */ class B {}
Dump A => Class FQCN\Of\MyBundle\Entity\B does not exist. – Stanislas