首页 > 解决方案 > 如果account_status = 1,我将如何设置然后我可以登录,否则无法登录?

问题描述

如果account_status = 1,我将如何设置然后我可以登录,否则无法登录?电子邮件、电话和密码必须在那里。这是以下代码

public function login(Request $request){ 

        if(Auth::attempt(['email' => request('email'), 'password' => request('password'),
        'account_status'=> request('account_status')])){ 
            $user = Auth::user(); 
            $success['token'] =  $user->createToken('MyApp')-> accessToken; 
            return response()->json(['success' => $success], $this-> successStatus); 
        } 
        else if(Auth::attempt(['phone' => request('phone'), 'password' => request('password'),
        'account_status'=> request('account_status')])){
            $user = Auth::user(); 
            $success['token'] =  $user->createToken('MyApp')-> accessToken; 
            return response()->json(['success' => $success], $this-> successStatus);
        }
        else{ 
            return response()->json(['error'=>'Unauthorised'], 401); 
        } 
    }

标签: mysqlsqlapilaravel-5eloquent

解决方案


您的逻辑是正确的,但我从未见过您提到的访问请求变量的方法:

request('email')

请使用以下格式:

$request->input('email')

所以你的代码应该是:

public function login(Request $request){ 
    if(Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password'),
    'account_status'=> $request->input('account_status')])){ 
        $user = Auth::user(); 
        $success['token'] =  $user->createToken('MyApp')-> accessToken; 
        return response()->json(['success' => $success], $this-> successStatus); 
    } 
    else if(Auth::attempt(['phone' => $request->input('phone'), 'password' => $request->input('password'),
    'account_status'=> $request->input('account_status')])){
        $user = Auth::user(); 
        $success['token'] =  $user->createToken('MyApp')-> accessToken; 
        return response()->json(['success' => $success], $this-> successStatus);
    }
    else{ 
        return response()->json(['error'=>'Unauthorised'], 401); 
    } 
}

我希望它有帮助


推荐阅读