(09-21-2018, 06:16 AM)kilishan Wrote: My suggestion: don't worry about loading the session globally. First - that means that if the session isn't needed it isn't loaded which can be good for performance and some security things, IIRC. Second - whenever you first call the service, or use the the service() helper method, the session will be automatically initialized and ready for use.
Code:
// These all ensure session is initialized:
$session = \Config\Services::Session();
session('key');
session()->get('key');
session()->set('key', $value);
In CI3 the session was held globally.
I have started the session in BaseController and assigned the values to the respective one from one controller, but when evaluating it in another controller the values do not exist.
BaseController:
PHP Code:
$this->sesion = \Config\Services::session();
Controller where I assign the values to the logged in user session:
PHP Code:
//agrego los datos del asuario al array
$datosEnSesion = array(
'usuario'=>$usuarioEncontrado->usuario,
'usuario_nombre'=>$usuarioEncontrado->usuario_nombre,
'usuario_estado'=>$usuarioEncontrado->usuario_estado,
'chequear'=>true,
'MenuUsuarioLogueado'=>$MenuUsuarioLogueado,
'ids_modulo_opciones'=>$ids_modulo_opciones
);
//agrego los datos a una sesion
$this->sesion->set($datosEnSesion);
If I print those values on the current controller, it works correctly, but when evaluating them on another controller, it no longer exists.
Other controller:
PHP Code:
public function __construct(){
//parent::__construct();
//establezco la zona horario par El Salvador
date_default_timezone_set('America/El_Salvador');
//comprobamos si el usuario está logueado
$this->sesion = session();
if($this->sesion->chequear != true)
{
//si no estoy logueado que me envie a index
return redirect()->to(base_url());
}
//cargo los modelos anecestiar
}
Any idea why that happens?