【问题标题】:ZF2 + query entity Doctrine2ZF2 + 查询实体 Doctrine2
【发布时间】:2015-04-02 00:35:31
【问题描述】:

我正在对实体进行查询,但我当然被要求实例化学说 entityManager 我的严肃问题:

作为实例化 EntityManager 以在实体中使用。

对不起,我用的是 google truth XD,因为没有遇到 ZF2 社区和西班牙语的 Doctrine2。

【问题讨论】:

    标签: zend-framework2 doctrine entity


    【解决方案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');
    

    【讨论】:

    • 谢谢,这正是我所需要的,它可以工作。现在你告诉我这不是好的做法,所以现在我有另一个问题。如果我不能从实体调用 EntityManager,我应该去哪里查询我正在做的事情。这个咨询应该在驱动还是去哪里?
    猜你喜欢
    • 2014-03-27
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    相关资源
    最近更新 更多