Laravel - Sesión
Las sesiones se utilizan para almacenar información sobre el usuario a través de las solicitudes. Laravel proporciona varios controladores comofile, cookie, apc, array, Memcached, Redis, y databasepara manejar los datos de la sesión. De forma predeterminada, se usa el controlador de archivos porque es liviano. La sesión se puede configurar en el archivo almacenado enconfig/session.php.
Acceder a los datos de la sesión
Para acceder a los datos de la sesión, necesitamos una instancia de sesión a la que se pueda acceder mediante una solicitud HTTP. Después de obtener la instancia, podemos usar laget() método, que tomará un argumento, “key”, para obtener los datos de la sesión.
$value = $request->session()->get('key');
Puedes usar all() método para obtener todos los datos de la sesión en lugar de get() método.
Almacenamiento de datos de la sesión
Los datos se pueden almacenar en sesión utilizando el put()método. losput() El método tomará dos argumentos, el “key” y el “value”.
$request->session()->put('key', 'value');
Eliminar datos de la sesión
los forget()El método se utiliza para eliminar un elemento de la sesión. Este método tomará“key” como argumento.
$request->session()->forget('key');
Utilizar flush() método en lugar de forget()método para eliminar todos los datos de la sesión. Utilizar elpull()método para recuperar datos de la sesión y eliminarlos después. El método pull () también tomarákeycomo argumento. La diferencia entreforget() y el pull() el método es ese forget() El método no devolverá el valor de la sesión y pull() El método lo devolverá y eliminará ese valor de la sesión.
Ejemplo
Step 1 - Crea un controlador llamado SessionController ejecutando el siguiente comando.
php artisan make:controller SessionController --plain
Step 2 - Después de una ejecución exitosa, recibirá el siguiente resultado:
Step 3 - Copie el siguiente código en un archivo en
app/Http/Controllers/SessionController.php.
app/Http/Controllers/SessionController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class SessionController extends Controller {
public function accessSessionData(Request $request) {
if($request->session()->has('my_name'))
echo $request->session()->get('my_name');
else
echo 'No data in the session';
}
public function storeSessionData(Request $request) {
$request->session()->put('my_name','Virat Gandhi');
echo "Data has been added to session";
}
public function deleteSessionData(Request $request) {
$request->session()->forget('my_name');
echo "Data has been removed from session.";
}
}
Step 4 - Agregue las siguientes líneas en app/Http/routes.php archivo.
app/Http/routes.php
Route::get('session/get','[email protected]');
Route::get('session/set','[email protected]');
Route::get('session/remove','[email protected]');
Step 5 - Visite la siguiente URL para set data in session.
http://localhost:8000/session/set
Step 6 - La salida aparecerá como se muestra en la siguiente imagen.
Step 7 - Visite la siguiente URL para get data from session.
http://localhost:8000/session/get
Step 8 - La salida aparecerá como se muestra en la siguiente imagen.
Step 9 - Visite la siguiente URL para remove session data.
http://localhost:8000/session/remove
Step 10 - Verá un mensaje como se muestra en la siguiente imagen.