Сеансы используются для хранения информации о пользователе по всем запросам. 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 — После успешного выполнения вы получите следующий вывод —
Шаг 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 — Вы увидите сообщение, как показано на следующем рисунке.