当我通过
检索一个对象时$em->find('Application\Models\User', 1);
或其他方法(如DQL,findBy*()
会导致模型类的__construct()
运行?我有一个问题,我在那里设置变量,如引用EntityManager,我发现它没有设置。
我尝试在die()
中添加__construct()
,但它不会停止应用程序。我是否可以这样说,如果我想设置其他属性/字段,如EntityManager $em
,我必须采取其他方式吗?也许像是
protected function getEm() {
if (!isset($this->em)) {
$this->em = \Zend_Registry::get('em');
}
return $this->em;
}
答案 0 :(得分:2)
根据doctrine2文档,Doctrine2从不调用实体的__construct()方法。 http://www.doctrine-project.org/docs/orm/2.0/en/reference/architecture.html?highlight=construct
我认为你不应该在实体类中引用entityManager,也许可以使用服务类。