我使用的是ci,我有一个usermodel,它根据登录信息选择用户并设置一个uservo,然后在这样的会话中添加这个uservo:

$this->session->set_userdata('user', $userVO);

当我尝试访问此会话时,它将返回以下错误:
Message: main() [function.main]: The script tried to execute a method
or access a property of an incomplete object. Please ensure that the
class definition "UserVO" of the object you are trying to operate on
was loaded _before_ unserialize() gets called or provide a __autoload()
function to load the class definition.

我找到了一个“解决方案”,我需要ci在session类之前加载uservo类,它可以工作。
问题是我有很多os-vo类,在会话中需要它们,自动加载它们是一件坏事,因为我不需要同时使用它们。
有什么解决办法吗?
提前谢谢你的帮助。

最佳答案

现在的情况是您正在将类的一个实例保存到会话中。为了恢复它,首先需要加载它是实例的基类。您可能有很多vo类的“实例”,而不是很多vo类。您只需要加载包含类声明的文件。
类实例实际上只包含从基类更改的内容,而不是整个类。所以它需要底层类知道什么是“默认值”。

09-12 14:41