Получить данные сеанса Codeigniter - PullRequest
0 голосов
/ 10 января 2012

Я работаю в системе обмена сообщениями и хочу, чтобы идентификатор пользователя был добавлен в базу данных вместе с сообщением. Прямо сейчас сообщение отправляется в базу данных, но с идентификатором пользователя 0.

Как я могу получить идентификатор пользователя из данных сеанса для отправки в базу данных вместе с сообщением? Sidenote: Я использую Tank Auth для аутентификации. (Со стороны mysql user_id в таблице сообщений является внешним ключом, ссылающимся на id в таблице пользователей).

Контроллер

function index() {

    if ($this->input->post('submit')) {
            $id = $this->input->post('user_id');
            $message = $this->input->post('message');

            $this->load->model('message_model');
            $this->message_model->addPost($id, $message);
        }
    }   

Модель

function addMessage($id, $message) {
        $data = array(
            'user_id' => $id,
            'message' => $message
        );

        $this->db->insert('message', $data);
    }

Ответы [ 2 ]

1 голос
/ 11 января 2012

Для tank_auth получите user_id, используя следующее, а затем назначьте его для ваших сессий

$user_id    = $this->tank_auth->get_user_id();
0 голосов
/ 10 января 2012

Взят непосредственно из документации CI :

Получение данных сеанса

Любая часть информации из массива сеансов доступна с помощью следующая функция:

$this->session->userdata('item');

Где элемент - индекс массива соответствующий предмету, который вы хотите получить. Например, чтобы получить ID сессии вы сделаете это:

$session_id = $this->session->userdata('session_id');

Примечание: функция возвращает FALSE (логическое значение), если элемент, к которому вы пытаетесь получить доступ не существует.

Итак, если у вас есть часть данных сеанса с именем user_id, вы получите к ней следующий доступ:

$user_id = $this->session->userdata('user_id');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...