1

当我检索一个对象时说

$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;
}
4

1 回答 1

2

根据doctrine2 文档Doctrine2 从不调用实体的__construct() 方法。 http://www.doctrine-project.org/docs/orm/2.0/en/reference/architecture.html?highlight=construct

我认为您不应该在实体类中引用 entityManager,也许为此使用服务类。

于 2010-12-26T11:48:55.260 回答