我想在会话中保存完整的模型,这样我就可以在整个应用程序中轻松使用数据。
成功登录应用程序后,我将模型保存在会话中,并将会话保存在ci_session
表中的数据库中。
我尝试过的代码:
$loginSuccess = $this->login_model->doLogin($username, $password);
if($loginSuccess) {
$this->login_model->initialize(); // this will set value in private variable
$serializelogin = serialize($this->login_model);
$this->session->set_userdata('userprofile', $serializelogin);
}
这段代码给了我一个错误:
Error Number: 2006
MySQL server has gone away
更新:我将表格ci_session
user_data
列从文本更改为长文本
您需要从创建会话开始。
//Destroy old session
$this->session->sess_destroy();
//Create a fresh, brand new session
$this->session->sess_create();
//Set session data
$this->session->set_userdata($row);
基本上$row是一个数组。 $row = $serializelogin->row_array((;
或
$this->session->set_userdata(array('active_flag' => false, 'active_status' => 0));
确保从模型返回的数据采用row_array格式。