继这篇源码的基础上做三种登录方式
原理:定义一个属性,将所有的登录方式的字段存起来。在循环查用户名即可
https://blog.csdn.net/fangkang7/article/details/83418641
源码
<?php namespace app\service; use app\model\user\User; class UserService { // 定义多种登录方式 private $loginWay = [ // 用户名 'user_name', // 邮箱 'user_emal', // 电话 'user_tel' ]; public function login($username,$password) { // 使用循环方式判断用户名是否存在 foreach($this->loginWay as $k=>$v){ $user = User::where([$v=>$username])->find(); // 如果存在就有这个用户,跳出 if($user){ break; } } if(!$user){ //用户名不存在 return ERROR_NO_USER; } if($user->user_status != 1){ // 用户是否被封 return ERROR_USER_START; } if(!password_verify($password,$user->user_password)){ // 密码错误,登录失败 return ERROR_PASSWORD; } //登录成功 return SUCCESS; } }