(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);
211/5000
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.
PHP Code:
//BaseController
$this->sesion = \Config\Services::session();
Controller where I assign the values to the logged in user session:
PHP Code:
$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());
}
}
Any idea why that happens?