РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
528 of 1392 menu

Метод forget

Метод forget класса Session удаляет указанные ключи и их значения из текущей сессии. В качестве первого параметра передаётся название ключа (строка) или массив ключей, которые следует удалить. Метод не возвращает значение и работает непосредственно с хранилищем сессии.

Синтаксис

<?php session()->forget($keys); ?>

Пример

Давайте добавим данные в сессию, а затем удалим ключ 'user':

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function store(Request $request) { session()->put('user', 'John Doe'); session()->put('role', 'admin'); $user = session()->get('user'); echo $user; session()->forget('user'); $res = session()->has('user'); echo $res ? 'true' : 'false'; } } ?>

Результат выполнения кода:

"John Doe" "false"

Пример

Удалим несколько ключей одновременно, передав массив:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class SettingsController extends Controller { public function clear(Request $request) { session()->put('theme', 'dark'); session()->put('language', 'ru'); session()->put('notifications', 'on'); $all = session()->all(); echo json_encode($all); session()->forget(['language', 'notifications']); $res = session()->all(); echo json_encode($res); } } ?>

Результат выполнения кода:

{"theme":"dark","language":"ru","notifications":"on"} {"theme":"dark"}

Пример

Если указать несуществующий ключ, метод не вызовет ошибку:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class TestController extends Controller { public function index(Request $request) { session()->put('name', 'John'); session()->forget('non_existent_key'); $res = session()->get('name'); echo $res; } } ?>

Результат выполнения кода:

"John"

Пример

Метод forget работает с вложенными ключами через точку:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ProfileController extends Controller { public function update(Request $request) { session()->put('user.profile.name', 'John'); session()->put('user.profile.email', 'john@example.com'); session()->put('user.settings.theme', 'light'); $res = session()->all(); echo json_encode($res); session()->forget('user.profile.email'); $res = session()->all(); echo json_encode($res); } } ?>

Результат выполнения кода:

{"user":{"profile":{"name":"John","email":"john@example.com"},"settings":{"theme":"light"}}} {"user":{"profile":{"name":"John"},"settings":{"theme":"light"}}}

Смотрите также

  • метод get,
    который получает значение из сессии
  • метод put,
    который добавляет данные в сессию
  • метод pull,
    который извлекает и удаляет значение из сессии
  • метод flush,
    который полностью очищает сессию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить