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

pbu*_*man 3 php symfony doctrine-orm

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

Thx提前.

Ino*_*ryy 7

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

有关更多信息,请查看Service Container文档.

像这样的东西:

services:
    my_hello_class:
        class:        Acme\HelloBundle\HelloClass
        arguments:    ["@doctrine.orm.entity_manager"]
Run Code Online (Sandbox Code Playgroud)

然后课程看起来像这样:

// ....

class HelloClass
{
    private $em;

    public function __construct(\Doctrine\ORM\EntityManager $em)
    {
        $this->em = $em; 

        // ....
    }   

}
Run Code Online (Sandbox Code Playgroud)