Подтвердить что ты не робот

FOSUserBundle: имя пользователя vs usernameCanonical

Почему у объекта FOSUserBundle User есть два свойства для имени пользователя (и других полей)?

/**
 * @var string
 */
protected $username;

/**
 * @var string
 */
protected $usernameCanonical;

Я прочитал документы, просмотрел исходный код и попытался найти информацию, и я не могу понять, почему он существует. Кажется, что он всегда хранит одни и те же значения. Я уверен, что есть веская причина, может кто-то наполнить меня?

4b9b3361

Ответ 1

Канонические поля получают нижнюю область перед сравнением или поиском - чтобы убедиться, что нет дубликатов с одинаковым значением, но с другим случаем, например [email protected] и [email protected].