Метод get класса Session
Метод get класса Session возвращает значение,
хранящееся в сессии по указанному ключу. Первым параметром
передаётся имя ключа, вторым необязательным параметром -
значение по умолчанию, которое будет возвращено, если ключ
в сессии отсутствует. Если ключа нет и значение по умолчанию
не задано, метод возвращает null.
Синтаксис
public function get(string $name, mixed $default = null): mixed
Пример
Давайте запишем значение в сессию и затем прочитаем его
методом get:
<?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/get', name: 'session_get')]
public function index(Request $request): Response
{
$session = $request->getSession();
$session->set('user', 'abcde');
$res = $session->get('user');
return new Response($res);
}
}
?>
Результат выполнения кода:
abcde
Пример
Давайте прочитаем ключ, которого нет в сессии, передав значение по умолчанию:
<?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/default', name: 'session_default')]
public function index(Request $request): Response
{
$session = $request->getSession();
$res = $session->get('missing', 'hello');
return new Response($res);
}
}
?>
Результат выполнения кода:
hello
Пример
Давайте прочитаем ключ, которого нет в сессии, без значения
по умолчанию. Метод вернёт 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/null', name: 'session_null')]
public function index(Request $request): Response
{
$session = $request->getSession();
$res = $session->get('missing');
var_dump($res);
return new Response('done');
}
}
?>
Результат выполнения кода:
NULL
Пример
Давайте сохраним в сессии массив и прочитаем его методом
get:
<?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/array', name: 'session_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