有没有办法让Zend_Auth接受case-insensetive身份(即用户名)? Zend_Auth似乎提供了一种方法来为凭证字段添加特殊处理,但不提供身份字段。
PS:我正在使用指向Postgres表的Zend_Auth_Adapter_DbTable。
答案 0 :(得分:3)
这样的事情应该有效:
$authAdapter = new Zend_Auth_Adapter_DbTable(
$dbAdapter,
'usertable',
new Zend_Db_Expr('LOWER(username)'),
'password'
);
$authAdapter
->setIdentity(strtolower($this->_getParam('username'))
->setCredential($this->_getParam('password'));
并确保在数据库中使用其中一个 * _ ci 排序规则用于用户名字段(ci =不区分大小写)。 希望它有所帮助
答案 1 :(得分:0)
您可以更改您的表,以便用户名列的类型为citext,因此它不区分大小写,您仍然可以使用索引。