Метод set класса Session
Метод set класса Session записывает значение в сессию по указанному ключу. Первым параметром передаётся имя ключа, вторым - значение, которое нужно сохранить. Метод не возвращает результат, а лишь изменяет данные текущей сессии.
Синтаксис
public function set(string $name, mixed $value): void
Пример
Давайте запишем в сессию значение по ключу 'user':
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class SessionController extends AbstractController
{
#[Route('/session/set', name: 'session_set')]
public function index(Request $request): Response
{
$session = $request->getSession();
$session->set('user', 'abcde');
return new Response('saved');
}
}
?>
Результат выполнения кода:
"saved"
Пример
Давайте сохраним в сессию массив значений:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class SessionController extends AbstractController
{
#[Route('/session/set-array', name: 'session_set_array')]
public function index(Request $request): Response
{
$session = $request->getSession();
$session->set('items', ['a', 'b', 'c', 'd', 'e']);
$res = $session->get('items');
return new Response(implode(', ', $res));
}
}
?>
Результат выполнения кода:
"a, b, c, d, e"
Пример
Давайте запишем значение и сразу прочитаем его обратно:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class SessionController extends AbstractController
{
#[Route('/session/set-get', name: 'session_set_get')]
public function index(Request $request): Response
{
$session = $request->getSession();
$session->set('article', 'hello');
$res = $session->get('article', 'default');
return new Response($res);
}
}
?>
Результат выполнения кода:
"hello"