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

时间:2012-01-29 12:40:28

标签: php symfony doctrine-orm

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

提前谢谢。

1 个答案:

答案 0 :(得分:7)

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

有关详细信息,请查看Service Container documentation

这样的事情:

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; 

        // ....
    }   

}