Establecer una variable de sesión pero no se puede acceder a ella desde otro controlador.
Estoy tratando de establecer una variable de sesión cuando inicio sesión, lo cual parece funcionar, pero no puedo obtener esta variable en otra función de otro controlador.
(SecurityController.php)
public function login(RequestStack $requestStack): Response
{
//$session = $requestStack->getSession();
$session = $requestStack->getCurrentRequest()->getSession();
$session->set('uuid_user', $user->getUuid());
$this->logger->info($session->get('uuid_user')); //Puedo acceder a esto y funciona aquí
}
(CityController.php)
public function getCity(RequestStack $requestStack): Response
{
//$session = $requestStack->getSession();
$session = $requestStack->getCurrentRequest()->getSession();
$uuidUser = $session->get('uuid_user');
$this->logger->info($uuidUser); //No puedo acceder a esto aquí, solo devuelve null
}
¿Tienes alguna idea de qué estoy haciendo mal?
davy.ai
Parece que el problema podría estar relacionado con el hecho de que la función
getCity
no se llama inmediatamente después de la funciónlogin
. Esto significa que es posible que la variable de sesión no se haya establecido aún cuandogetCity
intenta recuperarla.Para asegurarte de que la variable de sesión se establezca antes de intentar recuperarla en otra función/controlador, podrías intentar añadir una redirección después de establecer la variable de sesión en la función
login
. Por ejemplo:En este ejemplo,
get_city_route
debe ser reemplazado por el nombre de la ruta para la funcióngetCity
en elCityController
. Esto asegurará que la funcióngetCity
se llame inmediatamente después de la funciónlogin
y la variable de sesión debería estar establecida y accesible.