Php FOSUserBundle:username vs usernamecononical

Php FOSUserBundle:username vs usernamecononical,php,symfony,Php,Symfony,为什么FOSUserBundle用户实体有两个用户名属性(和其他字段) 我已经阅读了文档,浏览了源代码,并试图搜索信息,但我无法找到它存在的原因。它似乎总是存储相同的值。我确信有一个很好的理由,有人能告诉我吗?在比较或搜索之前,规范字段会被小写-以确保没有相同值但大小写不同的重复项,如Test@test.org和test@test.org但是如果表的排序规则设置为不区分大小写的值(就像utf8\u unicode\u ci),这真的很重要吗?@pikachu0,不是所有的RDBMS都不区分大小写

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


我已经阅读了文档,浏览了源代码,并试图搜索信息,但我无法找到它存在的原因。它似乎总是存储相同的值。我确信有一个很好的理由,有人能告诉我吗?

在比较或搜索之前,规范字段会被小写-以确保没有相同值但大小写不同的重复项,如
Test@test.org
test@test.org

但是如果表的排序规则设置为不区分大小写的值(就像
utf8\u unicode\u ci
),这真的很重要吗?@pikachu0,不是所有的RDBMS都不区分大小写。例如,我使用的RDBMS PostgreSQL默认区分大小写。是的,这就是为什么我说它不区分大小写。@pikachu0 ORM的目的是尽可能不区分数据库,因此,做“如果排序规则设置为…”这样的假设毫无意义,我必须给Ninj一个+1的回复;)
/**
 * @var string
 */
protected $username;

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