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

Класс TargetPathTrait

Класс TargetPathTrait предоставляет набор методов для работы с целевым путём (target path) в сессии. Целевой путь - это URL, на который пользователь будет перенаправлен после успешной аутентификации. Класс содержит три метода: saveTargetPath для сохранения пути, getTargetPath для его получения и removeTargetPath для удаления. Первым параметром во все методы передаётся объект Request, а вторым - строковый ключ firewall.

Синтаксис

<?php trait TargetPathTrait { public function saveTargetPath(Request $request, string $firewallName, string $uri): void public function getTargetPath(Request $request, string $firewallName): ?string public function removeTargetPath(Request $request, string $firewallName): void } ?>

Пример

Давайте сохраним целевой путь '/admin' для firewall с именем 'main':

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Http\Util\TargetPathTrait; class SecurityController extends AbstractController { use TargetPathTrait; public function login(Request $request): Response { $this->saveTargetPath($request, 'main', '/admin'); return new Response('target path saved'); } } ?>

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

"target path saved"

Пример

Давайте получим ранее сохранённый целевой путь:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Http\Util\TargetPathTrait; class SecurityController extends AbstractController { use TargetPathTrait; public function login(Request $request): Response { $this->saveTargetPath($request, 'main', '/admin'); $res = $this->getTargetPath($request, 'main'); return new Response($res); } } ?>

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

"/admin"

Пример

Давайте удалим сохранённый целевой путь:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Security\Http\Util\TargetPathTrait; class SecurityController extends AbstractController { use TargetPathTrait; public function login(Request $request): Response { $this->saveTargetPath($request, 'main', '/admin'); $this->removeTargetPath($request, 'main'); $res = $this->getTargetPath($request, 'main'); return new Response($res ?? 'null'); } } ?>

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

"null"

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

  • метод saveTargetPath,
    который сохраняет целевой путь в сессии
  • метод getTargetPath,
    который возвращает сохранённый целевой путь
  • метод removeTargetPath,
    который удаляет целевой путь из сессии
  • класс Passport,
    который представляет собой паспорт аутентификации
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить