我正在尝试将Symfony 2与Doctrine 2一起使用。但我有以下问题: 在创建实际上既不是控制器也不是模型的类之后,我想在那里使用getEntityManager()。但我怎么能得到这个呢?
提前谢谢。答案 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;
// ....
}
}