在codeigniter中不能使用标量值作为数组?

时间:2015-08-04 22:37:21

标签: php codeigniter session

我收到这个非常奇怪的错误“不能使用标量值作为数组” 谷歌上帝和SOF的东西都没有帮助我这个我想要做的是我已经创建了用户会话[有会话数据用户名和密码]现在用户登录my_profile页面后我附加了一些会话数据,如user_id然后我开始得到这个错误???任何帮助或提示

//控制器

<?php 


      class My_profile extends CI_Controller {

      public function __construct()
         {
              parent::__construct();
              $this->load->library('session');
              $this->load->helper('form');
              $this->load->helper('url');
              $this->load->helper('html');
              $this->load->database();
              $this->load->library('form_validation');
        //    $this->is_login();
         }

      public function index () {

      if($this->session->userdata('is_login')) {

       $session_data = $this->session->userdata('is_login');
       $session_data['user_id'] = $this->session->userdata('user_id');
       $this->session->set_userdata("is_login", $session_data);

      $this->load->model('My_profilee');
      $data['query']=$this->My_profilee->view_data();
      $this->load->helper('url');
      $this->load->view('header2');
      $this->load->view('my_profile');
     // $this->load->view('footer');
     }else {
        echo "you don't have permission to access this page <a href=../Homecontroller/index/>Login</a>";
        die();

     }
      }



}

      ?>

// model

<?php 


      class My_profilee extends CI_Model {

       function __construct()
     {
          // Call the Model constructor
          parent::__construct();
          $this->load->database(); 
     }


      public function view_data() {


        //echo $this->session->userdata('user_id');
        $query=$this->db->get('tbl_usrs');
        return $query->result();

      }
}

      ?>

我真正想做的是在登录会话数据后添加用户ID [来自数据库],然后根据用户ID显示用户信息??

1 个答案:

答案 0 :(得分:0)

这很简单。

您有一个分配,其中将单个值(无论是整数还是字符串)分配给变量:

$session_data = $this->session->userdata('is_login');

现在这是一个标量值。除非在上下文中重新定义,否则它是不可变的。您不能将数组值应用于现有标量值,必须实例化新数组,并将该值应用为索引,然后将新项目作为索引添加到新数组中。

$session_array['session_data'] = $this->session->userdata('is_login');

继续为此数组分配变量,等等。