Как мне установить, если account_status = 1, тогда я могу войти, иначе не могу войти? - PullRequest
0 голосов
/ 31 мая 2019

Как мне установить, если 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); 
        } 
    }

Ответы [ 2 ]

0 голосов
/ 01 июня 2019

Ваша ошибка в том, что вы пытаетесь сопоставить account_status со значением, которое вы получили от request, но вам на самом деле нужно проверить, равно ли оно 1, поэтому измените

'account_status'=> request('account_status')

до

'account_status'=> 1

как в вашем if, так и в вашем else if.

0 голосов
/ 31 мая 2019

Ваша логика верна, но я никогда не видел способа доступа к переменным запроса, как вы упомянули:

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); 
    } 
}

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...