Volver a la página principal
sábado 28 septiembre 2024
30

Cómo usar session() en Laravel para manejar sesiones

Definición de 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.

Ejemplo básico de uso:

session(['key' => 'value']);

Este código almacena el valor 'value' en la sesión con la clave 'key'.

Algunos ejemplos de uso de 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.

Referencia oficial

Para más información sobre el manejo de sesiones en Laravel, consulta la documentación oficial de Laravel.

Etiquetas:
php laravel
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer