Как получить идентификатор зарегистрированного пользователя в symfony 4? - PullRequest
0 голосов
/ 27 апреля 2018

Пользователь может войти в систему, но мне нужен его идентификатор, чтобы показать его профиль. Поскольку я работаю в Symfony 4, многие возможные ответы, которые я нашел, устарели.

1 Ответ

0 голосов
/ 27 апреля 2018

https://symfony.com/doc/current/security.html#retrieving-the-user-object

После аутентификации к объекту User текущего пользователя можно получить доступ через ярлык getUser () (который использует службу security.token_storage). Внутри контроллера это будет выглядеть так:

public function index()
{
    $this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');

    $user = $this->getUser();
}

Пользователь будет объектом, и класс этого объекта будет зависеть от вашего провайдера. Но вы не сказали нам, какого провайдера вы используете, поэтому я не могу, кроме этого, рассказать вам, как получить сам идентификатор.

Еще один способ получить пользователя:

Альтернативный способ получить текущего пользователя в контроллере состоит в том, чтобы напечатать подсказку контроллера с параметром UserInterface (и по умолчанию он равен нулю, если вход в систему необязателен):

use Symfony\Component\Security\Core\User\UserInterface\UserInterface;

public function indexAction(UserInterface $user = null)
{
    // $user is null when not logged-in or anon.
}

Это рекомендуется только для опытных разработчиков, которые не выходят из базового контроллера Symfony и не используют ControllerTrait. В противном случае рекомендуется продолжать использовать ярлык getUser ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...