ZendFrameworkプロジェクトでDoctrine2を使用していますが、問題を解決するのは簡単ではありません...
したがって、ユーザーがページに正常にログインしたら、オブジェクトをセッションに入れます。
Zend_Auth::getInstance()->getStorage()->write($user);
すべて正常に動作しますが、ページを更新してユーザーをセッションからロードすると、次のようになります。
$user = Zend_Auth::getInstance()->getStorage()->read();
そして、この$ userでは、Doctrine2の操作を実行できません:-/。たとえば、「getId()」メソッドを使用できますが、たとえば、任意のリレーションで$userを使用しようとすると次のようになります。
$session = new App_Model_LogSessions();
$session->setUser($user);
...
Doctrine2の例外が表示されます。
エンティティApp_Model_Usersは管理されていません。エンティティは、データベースからフェッチされた場合、またはEntityManager#persistを介して新規として登録された場合に管理されます。
どうすればこれを修正できますか?エンティティを「リロード」する方法はありますか?セッションを使用する必要があります。すべてのページリクエストでデータベースからユーザーをロードしたくありません。彼を一度ロードして、セッションに入れたいと思います。
ありがとう!