FOSUserBundle:用户名和用户名

为什么FOSUserBundle用户实体有两个用户名(和其他字段)的属性?

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

我已经阅读了文档,浏览了源代码,并尝试search信息,但是我找不到它存在的原因。 它似乎总是存储相同的值。 我确信有一个很好的理由,有人可以填补我吗?

在比较或search之前,规范字段会被Test@test.org ,以确保不存在具有相同值的重复值,但具有不同的大小写如Test@test.orgtest@test.org