在会话中保存完整模型-Codeigniter

时间:2018-10-15 09:37:24

标签: codeigniter codeigniter-3 codeigniter-session

我想在会话中保存完整的模型,以便可以在整个应用程序中轻松使用数据。

成功登录应用程序后,我将模型保存在会话中,并将会话保存在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}}列从文本更改为长文本

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格式。