Codeigniter объект в сессии? - PullRequest
1 голос
/ 04 сентября 2010

Я начинаю с КИ, и я кое-что не понимаю. Я пишу эту страницу входа и хочу добавить объект пользователя в сеанс. Как я могу это сделать? Пользовательский объект происходит из моей пользовательской модели .. Для нового экземпляра я пишу:

$this->load->model('user_model', 'user');

но это не сработает:

$this->session->set_userdata('userobject', $this->user);

Есть идеи, как это сделать?

Ответы [ 2 ]

2 голосов
/ 07 сентября 2010

В пользовательской модели создайте функцию для извлечения пользовательских данных, которые вы хотите добавить в сеанс:

function get_user_data($id){
    //example query
    $query = $this->db->get_where('mytable', array('id' => $id));
    //might wanna check the data more than this but...
    if ($query->num_rows() > 0){
        return $query->row_array();
    }
    else{
        return false;
    }
}

В контроллере :

$this->load->model('user_model', 'user');
$user_data = $this->user->get_user_data($id);
if(!empty($user_data)){
    $this->session->set_userdata($user_data);
}
1 голос
/ 12 июня 2011

А как насчет сериализации вашей модели?Но, будьте осторожны с сеансом CI, он не использует собственный сеанс PHP, он использовал ограниченный размер файлов cookie.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...