обновить базу данных при уничтожении сессии - PullRequest
0 голосов
/ 20 января 2020

Мне нужно обновить таблицу по истечении сеанса (или закрыть), но этот код говорит, $this->db это null? как я могу обновить базу данных при уничтожении сеанса ??

class MY_Session extends CI_Session{

    public function __construct() {
        parent::__construct();
    }

    function sess_destroy() {

        $data = array(
            'ip_address' => (string) ''
        );
        $this->db->update($this->tables['users'], $data, array('id' => $this->session->userdata('user_id')));

        //call the parent
        parent::sess_destroy();
    }

}

Ответы [ 2 ]

1 голос
/ 20 января 2020

Класс Session не имеет класса DB внутри. Вам, вероятно, потребуется ввести один из них с помощью метода установки

https://github.com/bcit-ci/CodeIgniter/blob/develop/system/libraries/Session/Session.php

ИЛИ, если вы используете какой-либо шаблон Observer, добавьте прослушиватель событий и вызвать событие изнутри здесь.

0 голосов
/ 20 января 2020

Попробуйте код ниже

        $this->CI->db->update($this->tables['users'], $data, array('id' => $this->session->userdata('user_id')));
...