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 に答える