Метод remove класса Session
Метод remove класса Session удаляет
значение из сессии по указанному ключу. Первым
параметром передаётся имя ключа. Если ключ
отсутствует в сессии, метод просто ничего не
делает и не выбрасывает исключение.
Синтаксис
public function remove(string $name): mixed
Пример
Давайте запишем значение в сессию, а затем
удалим его методом remove:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class SessionController extends AbstractController
{
#[Route('/session/remove', name: 'session_remove')]
public function index(Request $request): Response
{
$session = $request->getSession();
$session->set('user', 'abcde');
$session->remove('user');
$res = $session->get('user');
return new Response(var_export($res, true));
}
}
?>
Результат выполнения кода:
null
Пример
Давайте удалим только один ключ из нескольких записанных в сессию:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class SessionController extends AbstractController
{
#[Route('/session/remove-one', name: 'session_remove_one')]
public function index(Request $request): Response
{
$session = $request->getSession();
$session->set('user', 'abcde');
$session->set('article', 'hello');
$session->set('count', 5);
$session->remove('article');
$res = $session->all();
return new Response(var_export($res, true));
}
}
?>
Результат выполнения кода:
["user" => "abcde", "count" => 5]
Пример
Давайте удалим ключ, которого нет в сессии, и убедимся, что исключение не выбрасывается:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class SessionController extends AbstractController
{
#[Route('/session/remove-missing', name: 'session_remove_missing')]
public function index(Request $request): Response
{
$session = $request->getSession();
$session->set('user', 'abcde');
$session->remove('unknown');
$res = $session->has('unknown');
return new Response(var_export($res, true));
}
}
?>
Результат выполнения кода:
false