2012-01-10 91 views
0

我正在处理消息传递系统,并希望将用户的用户标识与消息一起发布到数据库。现在,消息发布到数据库,但用户标识为0.检索会话数据Codeigniter

如何从会话数据中获取用户标识并将其与消息一起发布到数据库?旁注:我正在使用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); 
    } 

回答

0

直接从CI's documentation摘自:

检索会话数据

从session数组的任何信息,请使用 以下功能:

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

凡产品与您所要获取的项目数组索引 。例如,获取你会做这样的 会话ID:

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

注: 函数返回FALSE(布尔)如果您试图访问 该项目不存在。

所以,如果你有一块名为user_id会话数据,你会获得这样的:

$user_id = $this->session->userdata('user_id'); 
+0

谢谢你。我在用户指南中看到,但认为因为我正在使用Tank Auth,会话语法会有所不同。我尝试了大约10个不同的时间来提出一些可行的方案 - 没有意识到语法会相同。 – chowwy 2012-01-10 18:49:14

1

对于tank_auth,使用下列得到USER_ID,然后分配,为您的会议

$user_id = $this->tank_auth->get_user_id();