Ne ovat helppo tapa säilyttää tiedot nykyiselle käyttäjälle. Tämä opetusohjelma antaa sinulle perusasiat istuntojen kanssa työskentelystä Laravelissa.
Laravelissa istunto on tapa tallentaa tietoja, käsitellä oikein käyttäjän tekemiä pyyntöjä. Kun käyttäjä käynnistää Laravel-sovelluksen, istunto käynnistyy automaattisesti kyseiselle käyttäjälle. Istuntotiedot tallennetaan palvelimelle ja käyttäjän selaimeen lähetetään pieni eväste, jolla on yksilöllinen tunniste istunnon tunnistamiseksi.
Voit käyttää istuntoa tietojen tallentamiseen, joita haluat käyttää useille sivuille tai pyynnöille. Voit esimerkiksi käyttää istuntoa käyttäjien todentamiseen tai tallentaa muita tietoja, joita haluat käyttää istunnon aikana sovellukseesi.
Jos haluat käyttää istuntoja Laravelissa, sinun on ensin otettava ne käyttöön tiedostossa config/session.php
kokoonpanosta. Tässä tiedostossa on mahdollista asettaa istuntoihin liittyviä konfiguraatioparametreja. Esimerkiksi istunnon kesto, istuntotietojen tallentamiseen käytettävä ajuri ja istuntotietojen tallennuspaikka.
Alla on esimerkki tiedostosta sessions.php
istunnon kesto 120 sekuntia, hakemistoon tallennettujen tiedostojen käyttö 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',
];
Voit myös määrittää istunnon käyttämällä tiedoston ympäristömuuttujia .env
. Jos esimerkiksi haluat käyttää tietokantaistuntoohjainta ja tallentaa istuntotiedot istuntotaulukkoon MySQL-tyyppisen DB:n kanssa, voit asettaa seuraavat ympäristömuuttujat:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Laravelissa on kolme tapaa käsitellä istuntotietoja:
helper
ja global session
;Request instance
. Kaikissa näissä tapauksissa istunnon aikana tallentamasi tiedot ovat käytettävissä saman käyttäjän myöhemmissä pyynnöissä, kunnes istunto vanhenee tai se tuhotaan manuaalisesti.
Laravelissa funktion avulla Global Session Helper
se on kätevä tapa käyttää kehyksen tarjoamia istuntopalveluita. Sen avulla voit tallentaa ja hakea tietoja istunnosta sovelluksessasi. Tässä on esimerkki kuinka käyttää 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();
Voit myös välittää esiarvondefinite funktion toisena argumenttina session
, joka palautetaan, jos määritettyä avainta ei löydy istunnosta:
$value = session('key', 'default');
Session Request
Laravelissa istuntopyyntöinstanssi viittaa objektiin, joka edustaa HTTP-pyyntöä ja sisältää tietoja pyynnöstä, kuten pyyntömenetelmän (GET, POST, PUT jne.), pyynnön URL-osoitteen, pyynnön otsikot ja pyynnön rungon . Se sisältää myös erilaisia menetelmiä, joita voidaan käyttää näiden tietojen hakemiseen ja käsittelemiseen.
Yleensä käytät esiintymää Session Request
muuttujan kautta $request
Laravel-sovelluksessa. Esimerkiksi istuntoon voidaan päästä pyyntöesiintymän kautta aputoiminnolla 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');
}
}
Tässä esimerkissä muuttuja $request
se on luokan esimerkki Illuminate\Http\Request
, joka edustaa nykyistä HTTP-pyyntöä. Toiminto session
request esiintymä palauttaa luokan esiintymän Illuminate\Session\Store
, joka tarjoaa erilaisia toimintoja istunnon kanssa työskentelyyn.
Ercole Palmeri
Veeamin Coveware tarjoaa jatkossakin kyberkiristystapahtumien reagointipalveluita. Coveware tarjoaa rikosteknisiä ja korjaavia ominaisuuksia…
Ennakoiva huolto mullistaa öljy- ja kaasualan innovatiivisella ja ennakoivalla lähestymistavalla laitosten hallintaan.…
Britannian CMA on antanut varoituksen Big Techin käyttäytymisestä tekoälymarkkinoilla. Siellä…
Euroopan unionin rakennusten energiatehokkuuden parantamiseksi laatima "Green Houses" -asetus on saanut lainsäädäntöprosessinsa päätökseen…