Są łatwym sposobem na zachowanie danych dla bieżącego użytkownika. W tym samouczku poznasz podstawy pracy z sesjami w Laravel.
W Laravel sesja jest sposobem przechowywania informacji, aby poprawnie obsługiwać żądania wysyłane przez użytkownika. Gdy użytkownik uruchamia aplikację Laravel, sesja jest automatycznie uruchamiana dla tego użytkownika. Dane sesji są przechowywane na serwerze, a mały plik cookie z unikalnym identyfikatorem jest wysyłany do przeglądarki użytkownika w celu identyfikacji sesji.
Możesz użyć sesji do przechowywania danych, których chcesz użyć na wielu stronach lub żądaniach. Na przykład możesz użyć sesji do uwierzytelnienia użytkownika lub przechowywać inne informacje, których chcesz użyć podczas sesji w swojej aplikacji.
Aby korzystać z sesji w Laravel, musisz najpierw włączyć je w pliku config/session.php
konfiguracji. W pliku tym można ustawić parametry konfiguracyjne związane z sesjami. Na przykład czas trwania sesji, sterownik używany do przechowywania danych sesji oraz miejsce przechowywania danych sesji.
Poniżej przykład pliku sessions.php
z czasem trwania sesji 120 sekund, korzystanie z plików zapisanych w katalogu 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',
];
Możesz także skonfigurować sesję przy użyciu zmiennych środowiskowych w pliku .env
. Na przykład, aby użyć sterownika sesji bazy danych i przechowywać dane sesji w tabeli sesji z bazą danych typu MySQL, można ustawić następujące zmienne środowiskowe:
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_CONNECTION=mysql
SESSION_TABLE=sessions
Istnieją trzy sposoby pracy z danymi sesji w Laravel:
helper
z global session
;Request instance
. We wszystkich tych przypadkach dane przechowywane w sesji będą dostępne w kolejnych żądaniach tego samego użytkownika, aż do wygaśnięcia sesji lub ręcznego zniszczenia.
W Laravel, używając funkcji Global Session Helper
to wygodny sposób na dostęp do usług sesyjnych dostarczanych przez framework. Pozwala przechowywać i pobierać dane z sesji w Twojej aplikacji. Oto przykład, jak użyć 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();
Możesz także przekazać wartość wstępnądefinite jako drugi argument funkcji session
, który zostanie zwrócony, jeśli określony klucz nie zostanie znaleziony w sesji:
$value = session('key', 'default');
Session Request
W Laravel instancja żądania sesji odnosi się do obiektu, który reprezentuje żądanie HTTP i zawiera informacje o żądaniu, takie jak metoda żądania (GET, POST, PUT itp.), adres URL żądania, nagłówki żądania i treść żądania . Zawiera również różne metody, których można użyć do pobierania i manipulowania tymi informacjami.
Zwykle uzyskujesz dostęp do instancji programu Session Request
przez zmienną $request
w aplikacji Laravel. Na przykład dostęp do sesji można uzyskać za pośrednictwem instancji żądania przy użyciu funkcji pomocniczej 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');
}
}
W tym przykładzie zmienna $request
jest to instancja klasy Illuminate\Http\Request
, który reprezentuje bieżące żądanie HTTP. Funkcja session
request instance zwraca instancję klasy Illuminate\Session\Store
, który zapewnia różne funkcje do pracy z sesją.
Ercole Palmeri
Coveware by Veeam będzie w dalszym ciągu świadczyć usługi reagowania na incydenty związane z wyłudzeniami cybernetycznymi. Coveware będzie oferować funkcje kryminalistyczne i naprawcze…
Konserwacja predykcyjna rewolucjonizuje sektor naftowo-gazowy dzięki innowacyjnemu i proaktywnemu podejściu do zarządzania zakładami.…
Brytyjskie CMA wydało ostrzeżenie dotyczące zachowań Big Tech na rynku sztucznej inteligencji. Tam…
Rozporządzenie w sprawie zielonych domów, opracowane przez Unię Europejską w celu zwiększenia efektywności energetycznej budynków, zakończyło proces legislacyjny…