我有一个存储库,我需要使用另一个拥有不同连接的实体管理器。此示例不起作用,因为$this->getEntityManager('anotherConnection')
获取当前存储库使用的相同管理器:
class BlahRepository extends \Doctrine\ORM\EntityRepository
{
public function find($id)
{
$qb = $this->createQueryBuilder('a')
->select('a')
->where('a.id = :id')
->setParameter('id', $id);
$result = $qb->getQuery()->getResult();
$repositoryFromAnotherManager = $this->getEntityManager('anotherConnection')
->getRepository('Bundle:Entity');
foreach ($result as $value) {
$something = $repositoryFromAnotherManager->getTranslatedSomething($value->getSomething());
$value->setTranslatedSomething($something);
}
return $result;
}
}
我的问题是:是否有可能获得在存储库中保存其他连接的其他实体管理器。注意:不是通过注入来调用此存储库,因此更改services.yml中的getRepository
工厂不是解决方案。
答案 0 :(得分:0)
我使用的解决方案是:创建管理器服务并向其注入2个存储库。当然,如果有人将存储库注入服务,那么您也可以重写工厂doctrine存储库服务。感谢@Cerad