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

Метод getUserIdentifier

Метод getUserIdentifier принадлежит интерфейсу UserInterface и возвращает строку - уникальный идентификатор пользователя. В качестве идентификатора обычно выступает email, логин или любое другое уникальное поле сущности пользователя. Symfony использует это значение при аутентификации, в том числе для загрузки пользователя из провайдера и для отображения имени текущего пользователя в шаблонах.

Метод не принимает параметров и должен возвращать строку. Если в сущности пользователя есть отдельное поле email, то его и возвращают из этого метода.

Синтаксис

public function getUserIdentifier(): string

Пример

Давайте создадим сущность пользователя, реализующую UserInterface, и вернём из метода getUserIdentifier значение поля email:

<?php namespace AppEntity; use SymfonyComponentSecurityCoreUserUserInterface; class User implements UserInterface { private ?int $id = null; private string $email = ''; private array $roles = []; public function getId(): ?int { return $this->id; } public function getEmail(): string { return $this->email; } public function setEmail(string $email): self { $this->email = $email; return $this; } public function getUserIdentifier(): string { return $this->email; } public function getRoles(): array { $roles = $this->roles; $roles[] = 'ROLE_USER'; return array_unique($roles); } public function eraseCredentials(): void { } } ?>

Пример

Давайте создадим объект пользователя, зададим ему email и получим идентификатор через метод getUserIdentifier:

<?php namespace AppController; use AppEntityUser; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class UserController extends AbstractController { #[Route('/user', name: 'user_show')] public function show(): Response { $user = new User(); $user->setEmail('user@example.com'); $res = $user->getUserIdentifier(); return new Response($res); } } ?>

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

user@example.com

Пример

Давайте используем метод getUserIdentifier для получения имени текущего пользователя в контроллере:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; use SymfonyComponentSecurityHttpSecurity; class ProfileController extends AbstractController { #[Route('/profile', name: 'profile_show')] public function show(Security $security): Response { $user = $security->getUser(); if ($user === null) { return new Response('anonymous'); } $res = $user->getUserIdentifier(); return new Response($res); } } ?>

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

user@example.com

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

anonymous

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

  • интерфейс UserInterface,
    который описывает контракт пользователя
  • метод getRoles,
    который возвращает роли пользователя
  • метод eraseCredentials,
    который очищает чувствительные данные пользователя
  • класс Security,
    который даёт доступ к текущему пользователю
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить