Mereka adalah cara mudah untuk menyimpan data untuk pengguna saat ini. Tutorial ini akan memberi Anda dasar-dasar bekerja dengan sesi di Laravel.
Di Laravel, sesi adalah cara untuk menyimpan informasi, untuk menangani permintaan yang dibuat oleh pengguna dengan benar. Saat pengguna memulai aplikasi Laravel, sesi secara otomatis dimulai untuk pengguna tersebut. Data sesi disimpan di server dan cookie kecil dengan pengidentifikasi unik dikirim ke browser pengguna untuk mengidentifikasi sesi.
Anda dapat menggunakan sesi untuk menyimpan data yang ingin Anda gunakan di beberapa halaman atau permintaan. Misalnya, Anda mungkin menggunakan sesi untuk autentikasi pengguna atau menyimpan informasi lain yang ingin Anda gunakan selama sesi di aplikasi Anda.
Untuk menggunakan sesi di Laravel, Anda harus mengaktifkannya terlebih dahulu di file config/session.php
konfigurasi. Dalam file ini dimungkinkan untuk mengatur parameter konfigurasi yang terkait dengan sesi. Misalnya durasi sesi, driver yang digunakan untuk menyimpan data sesi, dan lokasi penyimpanan data sesi.
Di bawah ini adalah contoh file sessions.php
dengan durasi sesi 120 detik, penggunaan file disimpan dalam direktori 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',
];
Anda juga dapat mengonfigurasi sesi menggunakan variabel lingkungan dalam file .env
. Misalnya, untuk menggunakan driver sesi database dan menyimpan data sesi dalam tabel sesi, dengan DB tipe MySQL, Anda dapat mengatur variabel lingkungan berikut:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Ada tiga cara untuk bekerja dengan data sesi di Laravel:
helper
dari global session
;Request instance
. Dalam semua kasus ini, data yang Anda simpan di sesi akan tersedia dalam permintaan selanjutnya yang dibuat oleh pengguna yang sama hingga sesi berakhir atau dihancurkan secara manual.
Di Laravel, menggunakan fungsi Global Session Helper
ini adalah cara mudah untuk mengakses layanan sesi yang disediakan oleh framework. Ini memungkinkan Anda untuk menyimpan dan mengambil data dari sesi di aplikasi Anda. Berikut adalah contoh cara menggunakan 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();
Anda juga dapat memberikan nilai awaldefinite sebagai argumen kedua untuk fungsi tersebut session
, yang akan dikembalikan jika kunci yang ditentukan tidak ditemukan di sesi:
$value = session('key', 'default');
Session Request
Di Laravel, instance permintaan sesi mengacu pada objek yang mewakili permintaan HTTP dan berisi informasi tentang permintaan, seperti metode permintaan (GET, POST, PUT, dll.), URL permintaan, header permintaan, dan badan permintaan . Ini juga berisi berbagai metode yang dapat digunakan untuk mengambil dan memanipulasi informasi ini.
Biasanya Anda mengakses instance dari Session Request
melalui variabel $request
dalam aplikasi Laravel. Misalnya, sebuah sesi dapat diakses melalui instance permintaan menggunakan fungsi helper 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');
}
}
Dalam contoh ini, variabel $request
itu adalah instance dari kelas Illuminate\Http\Request
, yang mewakili permintaan HTTP saat ini. Fungsi session
request instance mengembalikan sebuah instance dari kelas Illuminate\Session\Store
, yang menyediakan berbagai fungsi untuk bekerja dengan sesi.
Ercole Palmeri
Operasi oftalmoplasti menggunakan penampil komersial Apple Vision Pro dilakukan di Poliklinik Catania…
Mengembangkan keterampilan motorik halus melalui mewarnai mempersiapkan anak untuk keterampilan yang lebih kompleks seperti menulis. Mewarnai…
Sektor angkatan laut adalah kekuatan ekonomi global sejati, yang telah menuju pasar 150 miliar...
Senin lalu, Financial Times mengumumkan kesepakatan dengan OpenAI. FT melisensikan jurnalisme kelas dunianya…