根据网站需求现需要实现用户名登入的同时可以使用昵称登入。
解决的思路是在进行UC登入判断前,先对用户输入的用户名进行分析,看数据库中是否有相同昵称,有的话取出数据的用户名代替输入用户名进行登入判定。
修改文件:Application/Ucenter/Widget/LoginWidget.class.php
/*根据昵称去member表试着取信息,如果有的话去ucenter_member表取对应用户名*/
$map['nickname'] = $aUsername; //将输入用户名作为查找条件
if($nickname = M('member')->where($map)->field('uid')->select()){ //判断member表中是否存在nickname为输入用户名的数据,如果有则取出其uid
$n2u = M('ucenter_member')->where(array('id'=>$nickname[0]['uid']))->field('username')->select(); //根据取出的uid 取出对应用户名
$aUsername = $username = $n2u[0]['username']; //对$aUsername 和username 重新赋值 进行后续登入判断
}