Laravel - Sessão

As sessões são usadas para armazenar informações sobre o usuário nas solicitações. O Laravel oferece vários drivers comofile, cookie, apc, array, Memcached, Redis, e databasepara lidar com os dados da sessão. Por padrão, o driver de arquivo é usado porque é leve. A sessão pode ser configurada no arquivo armazenado emconfig/session.php.

Acessando os dados da sessão

Para acessar os dados da sessão, precisamos de uma instância da sessão que pode ser acessada via solicitação HTTP. Depois de obter a instância, podemos usar oget() método, que terá um argumento, “key”, para obter os dados da sessão.

$value = $request->session()->get('key');

Você pode usar all() método para obter todos os dados da sessão em vez de get() método.

Armazenamento de dados da sessão

Os dados podem ser armazenados na sessão usando o put()método. oput() método terá dois argumentos, o “key” e a “value”.

$request->session()->put('key', 'value');

Excluindo Dados da Sessão

o forget()método é usado para excluir um item da sessão. Este método vai levar“key” como o argumento.

$request->session()->forget('key');

Usar flush() método em vez de forget()método para excluir todos os dados da sessão. Use opull()método para recuperar dados da sessão e excluí-los posteriormente. O método pull () também levarákeycomo o argumento. A diferença entre oforget() e a pull() método é aquele forget() método não retornará o valor da sessão e pull() método irá retorná-lo e excluir esse valor da sessão.

Exemplo

Step 1 - Crie um controlador chamado SessionController executando o seguinte comando.

php artisan make:controller SessionController --plain

Step 2 - Após a execução bem-sucedida, você receberá a seguinte saída -

Step 3 - Copie o seguinte código em um arquivo em

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 - Adicione as seguintes linhas em app/Http/routes.php Arquivo.

app/Http/routes.php

Route::get('session/get','SessionController@accessSessionData');
Route::get('session/set','SessionController@storeSessionData');
Route::get('session/remove','SessionController@deleteSessionData');

Step 5 - Visite o seguinte URL para set data in session.

http://localhost:8000/session/set

Step 6 - A saída aparecerá conforme mostrado na imagem a seguir.

Step 7 - Visite o seguinte URL para get data from session.

http://localhost:8000/session/get

Step 8 - A saída aparecerá conforme mostrado na imagem a seguir.

Step 9 - Visite o seguinte URL para remove session data.

http://localhost:8000/session/remove

Step 10 - Você verá uma mensagem conforme mostrado na imagem a seguir.