簡體   English   中英

CodeIgniter使用構造函數中的全局會話變量

[英]CodeIgniter use a global session variable from contructor

我需要在控制器的各種功能中使用會話信息,但是由於出現錯誤,所以無法在構造函數中對其進行初始化。 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的方法嗎?

像下面這樣嘗試,模型非常復雜,因此我不提供它的代碼,但是您應該明白這一點。 有任何問題讓我知道。

/**
 * 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);
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM