Ia adalah cara mudah untuk mengekalkan data untuk pengguna semasa. Tutorial ini akan memberi anda asas bekerja dengan sesi dalam Laravel.
Dalam Laravel, sesi ialah cara untuk menyimpan maklumat, untuk mengendalikan permintaan yang dibuat oleh pengguna dengan betul. Apabila pengguna memulakan aplikasi Laravel, sesi dimulakan secara automatik untuk pengguna tersebut. Data sesi disimpan pada pelayan dan kuki kecil dengan pengecam unik dihantar ke penyemak imbas pengguna untuk mengenal pasti sesi.
Anda boleh menggunakan sesi untuk menyimpan data yang anda mahu gunakan merentas berbilang halaman atau permintaan. Sebagai contoh, anda mungkin menggunakan sesi untuk pengesahan pengguna atau menyimpan maklumat lain yang anda mahu gunakan semasa sesi pada aplikasi anda.
Untuk menggunakan sesi dalam Laravel, anda mesti mendayakan sesi dalam fail dahulu config/session.php
konfigurasi. Dalam fail ini adalah mungkin untuk menetapkan parameter konfigurasi yang berkaitan dengan sesi. Contohnya tempoh sesi, pemacu untuk digunakan untuk menyimpan data sesi, dan lokasi penyimpanan untuk data sesi.
Di bawah ialah contoh fail sessions.php
dengan tempoh sesi 120 saat, penggunaan fail yang 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 boleh mengkonfigurasi sesi menggunakan pembolehubah persekitaran dalam fail .env
. Contohnya, untuk menggunakan pemacu sesi pangkalan data dan menyimpan data sesi dalam jadual sesi, dengan DB jenis MySQL, anda boleh menetapkan pembolehubah persekitaran berikut:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Terdapat tiga cara untuk bekerja dengan data sesi dalam Laravel:
helper
daripada global session
;Request instance
. Dalam semua kes ini, data yang anda simpan dalam sesi akan tersedia dalam permintaan seterusnya yang dibuat oleh pengguna yang sama sehingga sesi tamat tempoh atau dimusnahkan secara manual.
Dalam Laravel, menggunakan fungsi Global Session Helper
ia adalah cara yang mudah untuk mengakses perkhidmatan sesi yang disediakan oleh rangka kerja. Ia membolehkan anda menyimpan dan mendapatkan semula data daripada sesi dalam 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 boleh lulus nilai pradefinite sebagai hujah kedua kepada fungsi tersebut session
, yang akan dikembalikan jika kunci yang ditentukan tidak ditemui dalam sesi:
$value = session('key', 'default');
Session Request
Dalam Laravel, contoh permintaan sesi merujuk kepada objek yang mewakili permintaan HTTP dan mengandungi maklumat tentang permintaan, seperti kaedah permintaan (GET, POST, PUT, dll.), URL permintaan, pengepala permintaan dan badan permintaan . Ia juga mengandungi pelbagai kaedah yang boleh digunakan untuk mendapatkan dan memanipulasi maklumat ini.
Biasanya anda mengakses contoh Session Request
melalui pembolehubah $request
dalam aplikasi Laravel. Sebagai contoh, sesi boleh diakses melalui contoh permintaan menggunakan fungsi pembantu 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, pembolehubah $request
ia adalah contoh kelas Illuminate\Http\Request
, yang mewakili permintaan HTTP semasa. Fungsinya session
contoh permintaan mengembalikan contoh kelas Illuminate\Session\Store
, yang menyediakan pelbagai fungsi untuk bekerja dengan sesi.
Ercole Palmeri
Sektor tentera laut adalah kuasa ekonomi global yang sebenar, yang telah menavigasi ke arah pasaran 150 bilion...
Isnin lalu, Financial Times mengumumkan perjanjian dengan OpenAI. FT melesenkan kewartawanannya bertaraf dunia…
Berjuta-juta orang membayar untuk perkhidmatan penstriman, membayar yuran langganan bulanan. Adalah menjadi pendapat umum bahawa anda…
Coveware oleh Veeam akan terus menyediakan perkhidmatan tindak balas insiden pemerasan siber. Coveware akan menawarkan keupayaan forensik dan pemulihan…