1
0
mirror of synced 2025-02-20 22:23:14 +03:00

set metadata for interface to be able to fetch entites by interface name

This commit is contained in:
Bart van den Burg 2012-06-29 12:18:37 +02:00 committed by Marco Pivetta
parent 9c3cb57931
commit 51528fbdea
2 changed files with 9 additions and 2 deletions

View File

@ -69,6 +69,12 @@ class ResolveTargetEntityListener
$this->remapAssociation($cm, $mapping);
}
}
foreach ($this->resolveTargetEntities as $interface => $data) {
if ($data['targetEntity'] == $cm->getName()) {
$args->getEntityManager()->getMetadataFactory()->setMetadataFor($interface, $cm);
}
}
}
/**

View File

@ -29,8 +29,7 @@ class ResolveTargetEntityListenerTest extends \Doctrine\Tests\OrmTestCase
$this->em = $this->_getTestEntityManager();
$this->em->getConfiguration()->setMetadataDriverImpl($annotationDriver);
$this->factory = new ClassMetadataFactory;
$this->factory->setEntityManager($this->em);
$this->factory = $this->em->getMetadataFactory();
$this->listener = new ResolveTargetEntityListener;
}
@ -57,6 +56,8 @@ class ResolveTargetEntityListenerTest extends \Doctrine\Tests\OrmTestCase
$this->assertSame('Doctrine\Tests\ORM\Tools\ResolveTargetEntity', $meta['manyToOne']['targetEntity']);
$this->assertSame('Doctrine\Tests\ORM\Tools\ResolveTargetEntity', $meta['oneToMany']['targetEntity']);
$this->assertSame('Doctrine\Tests\ORM\Tools\TargetEntity', $meta['oneToOne']['targetEntity']);
$this->assertSame($cm, $this->factory->getMetadataFor('Doctrine\Tests\ORM\Tools\ResolveTargetInterface'));
}
/**