我想在会话中保存完整的模型,以便可以在整个应用程序中轻松使用数据。
成功登录应用程序后,我将模型保存在会话中,并将会话保存在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
更新:我将表user_data
的{{1}}列从文本更改为长文本
答案 0 :(得分:0)
您需要先创建一个会话。
//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格式。