UserProvider
(используется в процессе входа в систему) возвращает a UserInterface
, которые представляют пользователя. Из него вы можете получить имя пользователя.
Теперь, как получить этого пользователя?
В зависимости от Symfony версии и где вы хотите получить к нему доступ, у вас есть несколько возможностей:
- Symfony <3,2 <ul>
- В контроллере -> вы можете использовать
$this->getUser()->getUsername();
Symfony> = 3,2
- In controller -> Inject
UserInterface
напрямую как зависимость ( read more )
Для обоих случаев, если вам нужен пользователь не в контроллере, вы можете внедрить (в зависимости от вашей symfony версии) сервис TokenStorage
или Security
(не могу найти, какая версия поддерживает какую, наверняка Security
Компонент поддерживается в sf5 ).
Если вы выберете (или будете вынуждены) go с TokenStorage
(или его интерфейсом), вам необходимо выполнить следующие шаги:
- getToken
- проверить, не является ли токен
null
- получить имя пользователя из токена (или опционально получить всего пользователя a затем найдите имя пользователя)