我在我的 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 注册为新实体,则该实体被管理
我怎样才能解决这个问题?有什么方法可以“重新加载”实体吗?我需要使用会话,我不想在每个页面请求中从数据库加载用户。我想加载他一次并让他参加会议。
谢谢!