Метод invalidate
Метод invalidate класса Session предназначен для полного уничтожения текущей сессии. При его вызове все данные, хранящиеся в сессии, очищаются, а сама сессия становится недействительной. Данный метод не принимает никаких параметров и возвращает значение типа bool, указывающее на успешность операции.
Синтаксис
<?php
Session::invalidate();
?>
Пример
Давайте добавим данные в сессию, а затем уничтожим её с помощью метода invalidate:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesSession;
class SessionController extends Controller
{
public function store(Request $request)
{
Session::put('user', 'JohnDoe');
Session::put('role', 'admin');
$res = Session::all();
print_r($res);
Session::invalidate();
$res = Session::all();
print_r($res);
}
}
?>
Результат выполнения кода:
["user" => "JohnDoe", "role" => "admin"]
[]
Пример
Давайте проверим результат работы метода invalidate при вызове из маршрута:
Route::get('/session/clear', function () {
Session::put('user', 'JohnDoe');
Session::put('role', 'admin');
echo "Before invalidate: ";
print_r(Session::all());
$res = Session::invalidate();
echo "After invalidate: ";
print_r(Session::all());
echo "Result: " . ($res ? 'true' : 'false');
});
Результат выполнения кода при переходе по адресу /session/clear:
"Before invalidate: ["user" => "JohnDoe", "role" => "admin"]"
"After invalidate: []"
"Result: true"
Пример
Продемонстрируем использование метода invalidate совместно с проверкой существования сессии:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use IlluminateSupportFacadesSession;
class AuthController extends Controller
{
public function logout(Request $request)
{
if (Session::has('user')) {
$res = Session::invalidate();
if ($res) {
echo "Session invalidated successfully";
} else {
echo "Failed to invalidate session";
}
} else {
echo "No active session found";
}
}
}
?>
Результат выполнения кода:
"Session invalidated successfully"
Смотрите также
-
метод
flush,
который удаляет все данные из сессии -
метод
forget,
который удаляет конкретный ключ из сессии -
метод
regenerate,
который генерирует новый идентификатор сессии -
метод
pull,
который извлекает и удаляет значение из сессии