session()
en Laravel
La función session()
proporciona acceso a la instancia global de la sesión de Laravel. Puede utilizarse para almacenar información con una clave específica, recuperar valores, eliminar datos, o incluso acceder a mensajes flash. Laravel soporta diferentes drivers de sesión como file
, database
, redis
, entre otros, definidos en el archivo de configuración config/session.php
.
session(['key' => 'value']);
Este código almacena el valor 'value'
en la sesión con la clave 'key'
.
session()
1. Almacenar un valor en la sesión:
session(['user_id' => 1]);
Este código guarda el valor 1
con la clave user_id
en la sesión. Podrás recuperarlo en futuras solicitudes hasta que la sesión se destruya o el valor se elimine.
2. Obtener un valor de la sesión:
$userId = session('user_id');
Aquí, $userId
contiene el valor almacenado con la clave user_id
. Si no existe, devolverá null
por defecto.
3. Obtener un valor con un predeterminado si no existe:
$userName = session('user_name', 'Invitado');
Si user_name
no está en la sesión, el valor predeterminado será 'Invitado'
.
4. Agregar mensajes flash a la sesión (datos temporales):
session()->flash('status', 'Perfil actualizado correctamente.');
Los mensajes flash solo están disponibles en la siguiente solicitud y luego desaparecen. Son útiles para notificaciones como "Operación exitosa".
5. Recuperar y eliminar un valor de la sesión:
$userId = session()->pull('user_id');
pull()
obtiene el valor de user_id
y lo elimina de la sesión al mismo tiempo.
6. Verificar si una clave existe en la sesión:
if (session()->has('user_id')) {
echo "El ID de usuario está almacenado en la sesión.";
}
session()->has('user_id')
devuelve true
si user_id
está presente en la sesión.
7. Eliminar un valor de la sesión:
session()->forget('user_id');
Esto elimina user_id
de la sesión.
8. Eliminar todos los valores de la sesión:
session()->flush();
flush()
borra toda la información almacenada en la sesión actual, lo que resulta en un reinicio de la sesión.
Para más información sobre el manejo de sesiones en Laravel, consulta la documentación oficial de Laravel.
Jorge García
Fullstack developer