Учебники

Laravel — Сессия

Сеансы используются для хранения информации о пользователе по всем запросам. Laravel предоставляет различные драйверы, такие как файл, cookie, apc, массив, Memcached, Redis и база данных для обработки данных сеанса. По умолчанию используется драйвер файла, потому что он легкий. Сессия может быть настроена в файле, хранящемся в config / session.php .

Доступ к данным сеанса

Чтобы получить доступ к данным сеанса, нам нужен экземпляр сеанса, к которому можно получить доступ через HTTP-запрос. После получения экземпляра мы можем использовать метод get () , который получит один аргумент «ключ» для получения данных сеанса.

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

Вы можете использовать метод all () для получения всех данных сеанса вместо метода get () .

Хранение данных сеанса

Данные могут храниться в сеансе с использованием метода put () . Метод put () будет принимать два аргумента: «ключ» и «значение» .

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

Удаление данных сеанса

Метод Forgot () используется для удаления элемента из сеанса. Этот метод примет «ключ» в качестве аргумента.

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

Используйте метод flush () вместо метода Forgot (), чтобы удалить все данные сеанса. Используйте метод pull () для извлечения данных из сеанса и последующего удаления. Метод pull () также будет принимать ключ в качестве аргумента. Разница между методом Forgot () и методом pull () заключается в том, что метод Forgot () не возвращает значение сеанса, а метод pull () возвращает его и удаляет это значение из сеанса.

пример

Шаг 1 — Создайте контроллер с именем SessionController , выполнив следующую команду.

php artisan make:controller SessionController --plain

Шаг 2 — После успешного выполнения вы получите следующий вывод —

SessionController

Шаг 3 — Скопируйте следующий код в файл по адресу

приложение / Http / Контроллеры / SessionController.php.

приложение / Http / Контроллеры / 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.";
   }
}

Шаг 4 — Добавьте следующие строки в файл app / Http / rout.php .

приложение / Http / routes.php

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

Шаг 5 — Посетите следующий URL, чтобы установить данные в сеансе .

http://localhost:8000/session/set

Шаг 6 — Вывод будет выглядеть, как показано на следующем рисунке.

Данные в сеансе

Шаг 7 — Посетите следующий URL, чтобы получить данные из сеанса .

http://localhost:8000/session/get

Шаг 8 — Вывод будет выглядеть, как показано на следующем рисунке.

Вират Ганди

Шаг 9 — Посетите следующий URL, чтобы удалить данные сеанса .

http://localhost:8000/session/remove

Шаг 10 — Вы увидите сообщение, как показано на следующем рисунке.