ZF2 +查询实体Doctrine2

时间:2015-04-02 00:35:32

标签: zend-framework2 doctrine entity

我正在对一个实体进行查询,但当然我被要求将doctrine entityManager实例化为我的严肃问题:

实例化要在实体中使用的EntityManager。

请原谅我的英语,我使用谷歌真相XD,因为没有用西班牙语与ZF2社区和Doctrine2会面。

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你想在你的Doctrine实体中获得entityManager,对吗?

我不认为在Doctrine实体中使用EntityManager是个好主意。但为此,您首先需要在实体类中获取服务管理器的实例。

  

默认情况下,Zend Framework MVC注册一个初始化程序,它将ServiceManager实例(Zend\ServiceManager\ServiceLocatorInterface的实现)注入实现Zend\ServiceManager\ServiceLocatorAwareInterface的任何类

对于Doctrine,我们必须在实体中提供服务管理器。所以你必须为每个实体实现ServiceLocatorAwareInterface或者更简单地创建一个实现Zend\ServiceManager\ServiceLocatorAwareInterface的类,然后简单地让需要访问服务管理器的实体从这个类继承。

以下是HOW TO INJECT ZF2 SERVICE MANAGER INTO DOCTRINE ENTITIES

上的好文章

点击这篇文章后,您可以像这样简单地获取实体中的entityManager

$em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');