set metadata for interface to be able to fetch entites by interface name
This commit is contained in:
parent
9c3cb57931
commit
51528fbdea
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user