CodeIgniter使用构造函数中的全局会话变量

时间:2014-02-21 16:40:02

标签: php codeigniter undefined

我需要在我的控制器的各种函数中使用会话信息,但我无法在构造函数中初始化它,因为我收到错误。 Message: Undefined property: Soporte::$session

class Soporte extends MY_Controller {

  function __construct(){
      parent::__construct( $module, $functionality );
  }

  public function actualizarSolicitud( $id_solicitud ){

     $session_data = $this->session->userdata('session_user');
     $user = $session_data['usuario'];
     ...
  }

  public function adminHistorico(){     

     $session_data = $this->session->userdata('session_user');
     $user     = $session_data['usuario'];        
     $config   = array();
     ...
  }

  ...

}

有一种方法可以初始化全局变量$ user?

1 个答案:

答案 0 :(得分:1)

尝试如下,模型非常复杂,所以我不提供它的代码,但你应该明白这一点。有任何问题让我知道。

/**
 * This class is used for performing all read/write session operations
 * Native php session is utilized (MY_Session library)
 */
class SessionManager extends BaseLibrary {

    private $oUser;

    public function __construct() {
        parent::__construct();
        $this->CI->load->model('User');
    }

    public function setUser(User $oUser) {
        $this->CI->session->set_userdata('userId', $oUser->getId());
    }

    public function getUser() {
        if ($this->oUser === null) {
            $this->oUser = new User();
            if ($this->CI->session->userdata('userId')) {
                $this->oUser->setId($this->CI->session->userdata('userId'));
            }
        }

        return $this->oUser;
    }

    public function logout() {
        $this->CI->session->set_userdata('userId', NULL);
    }

}