Снятие свойства : username позволяет UserProviderInterface загружать пользователя, как ожидается, когда он входит в систему, но не вызывает метод refreshUser () какожидается.Я вставил проверки, чтобы увидеть, вызывается ли он, но это не так.
Класс, который перезагружает пользователя при каждом доступе, это ContextListener :: refreshUser (TokenInterface $ token) метод.В этом интерфейс перебирает UserProviders и вызывает refreshUser, который сначала возвращает ненулевого пользователя.
Я мог бы убедиться в этом, потому что в исходной загрузке я объединяю все разные объекты, чтобы сделать один вызов SQLвместо 7. И когда пользователь перезагружается, он вызывает 7 раз.
Также метод EntityUserProvider :: refreshUser () не вызывает метод репозитория и вместо этого перезагружается из базы данных напрямую..