我正在开发一个消息传递系统,并希望将用户的userid与消息一起发布到数据库中。现在,邮件正在发布到数据库,但用户ID为0.
如何从会话数据中获取用户ID以及消息一起发布到数据库?旁注:我正在使用Tank Auth进行身份验证。 (从mysql方面来说,消息表中的user_id是users表中引用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);
}
答案 0 :(得分:1)
对于tank_auth,使用以下内容获取user_id,然后将其分配给您的会话
$user_id = $this->tank_auth->get_user_id();
答案 1 :(得分:0)
直接来自CI's documentation:
检索会话数据
会话数组中的任何信息都可以使用 以下功能:
$this->session->userdata('item');
其中item是数组索引 对应于您要获取的项目。例如,要获取 您将执行会话ID:
$session_id = $this->session->userdata('session_id');
注意: 如果您要访问的项目,函数返回FALSE(布尔值) 不存在。
因此,如果您有一段名为user_id
的会话数据,您可以像这样访问它:
$user_id = $this->session->userdata('user_id');