Вони є простим способом збереження даних для поточного користувача. Цей підручник надасть вам основи роботи з сеансами в Laravel.
У Laravel сеанс — це спосіб зберігати інформацію, правильно обробляти запити, зроблені користувачем. Коли користувач запускає програму Laravel, для цього користувача автоматично запускається сеанс. Дані сеансу зберігаються на сервері, а невеликий файл cookie з унікальним ідентифікатором надсилається в браузер користувача для ідентифікації сеансу.
Ви можете використовувати сеанс для зберігання даних, які ви хочете використовувати на кількох сторінках або запитах. Наприклад, ви можете використовувати сеанс для автентифікації користувача або зберігати іншу інформацію, яку ви хочете використовувати під час сеансу, у своїй програмі.
Щоб використовувати сеанси в Laravel, ви повинні спочатку ввімкнути їх у файлі config/session.php
конфігурації. У цьому файлі можна встановити параметри конфігурації, що стосуються сеансів. Наприклад, тривалість сеансу, драйвер для зберігання даних сеансу та місце зберігання даних сеансу.
Нижче наведено приклад файлу sessions.php
з тривалістю сеансу 120 секунд, використання файлів, що зберігаються в каталозі framework/sessions
:
<?php
use Illuminate\Support\Str;
return [
'driver' => env('SESSION_DRIVER', 'file'),
'lifetime' => env('SESSION_LIFETIME', 120),
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/sessions'),
'connection' => env('SESSION_CONNECTION', null),
'table' => 'sessions',
'store' => env('SESSION_STORE', null),
'lottery' => [2, 100],
'cookie' => env(
'SESSION_COOKIE',
Str::slug(env('APP_NAME', 'laravel'), '_').'_session'
),
'path' => '/',
'domain' => env('SESSION_DOMAIN', null),
'secure' => env('SESSION_SECURE_COOKIE'),
'http_only' => true,
'same_site' => 'lax',
];
Ви також можете налаштувати сеанс за допомогою змінних середовища у файлі .env
. Наприклад, щоб використовувати драйвер сеансу бази даних і зберігати дані сеансу в таблиці сеансу, з базою даних типу MySQL, ви можете встановити такі змінні середовища:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Існує три способи роботи з даними сеансу в Laravel:
helper
з global session
;Request instance
. У всіх цих випадках дані, які ви зберігаєте в сеансі, будуть доступні в наступних запитах, зроблених тим самим користувачем, доки сеанс не закінчиться або не буде знищено вручну.
У Laravel за допомогою функції Global Session Helper
це зручний спосіб отримати доступ до послуг сеансу, які надає фреймворк. Це дозволяє зберігати та отримувати дані сеансу у вашій програмі. Ось приклад того, як використовувати session helper
:
// Store data in the session
session(['key' => 'value']);
// Retrieve data from the session
$value = session('key');
// Remove data from the session
session()->forget('key');
// Clearing the Entire Session
session()->flush();
Ви також можете передати попереднє значенняdefinite як другий аргумент функції session
, який буде повернено, якщо вказаний ключ не знайдено в сеансі:
$value = session('key', 'default');
Session Request
У Laravel екземпляр запиту сеансу відноситься до об’єкта, який представляє HTTP-запит і містить інформацію про запит, таку як метод запиту (GET, POST, PUT тощо), URL-адресу запиту, заголовки запиту та тіло запиту. . Він також містить різні методи, які можна використовувати для отримання та маніпулювання цією інформацією.
Зазвичай ви отримуєте доступ до примірника Session Request
через змінну $request
у програмі Laravel. Наприклад, до сеансу можна отримати доступ через екземпляр запиту за допомогою допоміжної функції session()
.
use Illuminate\Http\Request;
class ExampleController extends Controller
{
public function example(Request $request)
{
// Store data in the session using the put function
$request->session()->put('key', 'value');
// Retrieve data from the session using the get function
$value = $request->session()->get('key');
// Check if a value exists in the session using the has function:
if ($request->session()->has('key')) {
// The key exists in the session.
}
// To determine if a value exists in the session, even if its value is null:
if ($request->session()->exists('users')) {
// The value exists in the session.
}
// Remove data from the session using the forget function
$request->session()->forget('key');
}
}
У цьому прикладі змінна $request
це екземпляр класу Illuminate\Http\Request
, який представляє поточний запит HTTP. Функція session
екземпляр запиту повертає екземпляр класу Illuminate\Session\Store
, який надає різні функції для роботи з сеансом.
Ercole Palmeri
Coveware від Veeam продовжить надавати послуги реагування на інциденти кібервимагання. Coveware запропонує криміналістику та можливості відновлення…
Прогнозне технічне обслуговування революціонізує нафтогазовий сектор завдяки інноваційному та проактивному підходу до управління заводом.…
CMA Великобританії випустило попередження щодо поведінки Big Tech на ринку штучного інтелекту. Там…
Указ «Case Green», розроблений Європейським Союзом для підвищення енергоефективності будівель, завершив свій законодавчий процес з…