2012-01-10 97 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();