Сохранить полную модель в сеансе - Codeigniter - PullRequest
0 голосов
/ 15 октября 2018

Я хочу сохранить полную модель в сеансе, чтобы можно было легко использовать данные во всем приложении.

После успешного входа в приложение я сохраняю модель в сеансе и сохраняю сеанс в базе данных в таблице 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 столбец таблицы ci_session с текста на длинный текст

1 Ответ

0 голосов
/ 17 октября 2018

Вам нужно начать с создания сеанса.

//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.

...