如何从模型/控制器外部获取EntityManager()


How to getEntityManager() from outside model/controller?

我正在尝试将Symfony 2与Doctrine 2一起使用。但我有以下问题:在创建了实际上既不是控制器也不是模型的类之后,我想使用getEntityManager()。但我怎么能得到这个?

提前Thx。

您需要将此类定义为服务,然后将实体管理器作为参数(在构造函数内部或通过setter)传递。

有关更多信息,请参阅Service Container文档。

类似这样的东西:

services:
    my_hello_class:
        class:        Acme'HelloBundle'HelloClass
        arguments:    ["@doctrine.orm.entity_manager"]

然后这个类看起来是这样的:

// ....
class HelloClass
{
    private $em;
    public function __construct('Doctrine'ORM'EntityManager $em)
    {
        $this->em = $em; 
        // ....
    }   
}