author:咔咔
wechat:fangkangfk
繼這篇源碼的基礎上作三種登陸方式php
原理:定義一個屬性,將全部的登陸方式的字段存起來。在循環查用戶名便可app
https://blog.csdn.net/fangkang7/article/details/83418641this
源碼
url
<?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; } }