1

我在codeigniter中有一个模型,它使用foreach循环从数据库获取通知。我想使用set_userdata将值传递给会话,但不幸的是我不能将多个值传递给我的会话,请帮助。下面是我的模型

function get_user_notifications($userID){
               $this->db->select()->from('messages')->where('receiverID',$userID);   
                $query = $this->db->get();
                if($query->num_rows()>0)
     {
            foreach($query->result() as $rows)
        {
          //add all data to session

            $notification=$rows->notification;
            $messageID=$rows->messageID;
            // $rows->messageID =>,



      $this->session->set_userdata('mynotifications',$notification);
        }


     }
4

2 回答 2

3

将所有通知添加到您在 foreach 之前实例化的数组中,然后将该数组添加到会话中。

另请注意,如果您使用标准的 codeigniter 会话,则其大小有 4k 限制,因此这可能不是最佳方法。

此外,这是假设您的会话类已正确初始化...

我已尽力清理您的代码。

function get_user_notifications($userID){
    $this->db->select()->from('messages')->where('receiverID',$userID);   
    $query = $this->db->get();
    $all_notifications = array();
    if($query->num_rows()>0)
    {
          foreach($query->result() as $rows)
          {
           //add all data to session
               $all_notification[]=$rows->notification;
               $messageID=$rows->messageID;     

          }
          $this->session->set_userdata('mynotifications',$all_notification);
    }
于 2013-06-14T16:35:17.677 回答
0

尝试这个,

function get_user_notifications($userID){
    $this->db->select()->from('messages')->where('receiverID',$userID);   
    $query = $this->db->get();
    $notification='';
    if($query->num_rows()>0)
    {
        foreach($query->result() as $rows)
        {
            //add all data to session
            $notification.=$rows->notification.',';
            $messageID=$rows->messageID;
            // $rows->messageID =>,
        }
    }
    $this->session->set_userdata('mynotifications',$notification);
}
于 2013-06-14T16:35:27.377 回答