Ili estas facila maniero por konservi datumojn por la nuna uzanto. Ĉi tiu lernilo donos al vi la bazojn pri laboro kun sesioj en Laravel.
En Laravel, sesio estas maniero konservi informojn, por ĝuste trakti petojn faritajn de uzanto. Kiam uzanto komencas Laravel-aplikaĵon, sesio aŭtomate komenciĝas por tiu uzanto. Sesiaj datumoj estas konservitaj en la servilo kaj malgranda kuketo kun unika identigilo estas sendita al la retumilo de la uzanto por identigi la seancon.
Vi povas uzi seancon por konservi datumojn, kiujn vi volas uzi tra pluraj paĝoj aŭ petoj. Ekzemple, vi povus uzi la seancon por uzantaŭtentigo aŭ stoki aliajn informojn, kiujn vi volas uzi dum la sesio en via aplikaĵo.
Por uzi sesiojn en Laravel, vi unue devas ebligi ilin en la dosiero config/session.php
de agordo. En ĉi tiu dosiero eblas agordi agordajn parametrojn rilatajn al sesioj. Kiel la daŭro de la sesio, la ŝoforo uzenda por stoki la sesiajn datumojn, kaj la stokan lokon por la seancaj datumoj.
Malsupre estas ekzemplo de dosiero sessions.php
kun daŭro de sesio 120 sekundoj, uzo de dosieroj konservitaj en la dosierujo 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',
];
Vi ankaŭ povas agordi la sesion uzante mediovariablojn en la dosiero .env
. Ekzemple, por uzi la datumbazan sean ŝoforon kaj stoki sesiajn datumojn en sesiotabelo, kun MySQL-tipo DB, vi povas agordi la sekvajn mediovariablojn:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Estas tri manieroj labori kun seancaj datumoj en Laravel:
helper
el global session
;Request instance
. En ĉiuj ĉi tiuj kazoj, la datumoj, kiujn vi stokas en la sesio, estos disponeblaj en postaj petoj faritaj de la sama uzanto ĝis la sesio eksvalidiĝos aŭ estas mane detruita.
En Laravel, uzante la funkcion Global Session Helper
ĝi estas oportuna maniero por aliri la sesiajn servojn provizitajn de la kadro. Ĝi permesas vin stoki kaj preni datumojn de la sesio en via aplikaĵo. Jen ekzemplo de kiel uzi la 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();
Vi ankaŭ povas pasi antaŭvalorondefinite kiel la dua argumento al la funkcio session
, kiu estos resendita se la specifita ŝlosilo ne estas trovita en la sesio:
$value = session('key', 'default');
Session Request
En Laravel, sesiopetokazaĵo rilatas al objekto kiu reprezentas HTTP-peton kaj enhavas informojn pri la peto, kiel ekzemple la petometodo (GET, POST, PUT, ktp.), peto URL, kaplinioj de la peto kaj la petokorpo. . Ĝi ankaŭ enhavas diversajn metodojn, kiuj povas esti uzataj por preni kaj manipuli ĉi tiujn informojn.
Kutime vi aliras la petskribon de la Session Request
tra la variablo $request
en Laravel-apliko. Ekzemple, sesio povas esti alirebla per peta okazo uzante la helpan funkcion 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');
}
}
En ĉi tiu ekzemplo, la variablo $request
ĝi estas ekzemplo de la klaso Illuminate\Http\Request
, kiu reprezentas la nunan HTTP-peton. La funkcio session
pet instance resendas ekzemplon de la klaso Illuminate\Session\Store
, kiu provizas diversajn funkciojn por labori kun la sesio.
Ercole Palmeri
La maramea sektoro estas vera tutmonda ekonomia potenco, kiu navigis al merkato de 150 miliardoj...
Pasintlunde, la Financial Times anoncis interkonsenton kun OpenAI. FT licencas sian mondklasan ĵurnalismon...
Milionoj da homoj pagas por streaming-servoj, pagante monatajn abonkotizojn. Estas komuna opinio, ke vi...
Coveware de Veeam daŭre liveros servojn de respondaj incidentoj pri ciberĉantaĝo. Coveware ofertos krimmedicinajn kaj solvajn kapablojn...