Вызывает ли получение объекта из Doctrine2 __construct () класса модели? - PullRequest
1 голос
/ 24 декабря 2010

Когда я получаю объект, скажем,

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

1 Ответ

2 голосов
/ 26 декабря 2010

В соответствии с документацией doctrine2 Doctrine2 никогда не вызывает __construct () метод сущностей.http://www.doctrine -project.org / docs / orm / 2.0 / en / reference / Architecture.html? Highlight = construct

Я думаю, что вы не должны ссылаться на entityManager в классе сущности, возможно, используйте для этого класс обслуживания.

...