Вернуть сообщение об ошибке исключения в переменную Laravel - PullRequest
0 голосов
/ 22 ноября 2018

Я делаю одну функцию для входа через Firebase в laravel, она работает правильно, но я пытаюсь записать сообщение об ошибке в переменную сеанса, а затем перенаправить в представление входа в систему, но вместо этого оно показывает представление ошибки laravel.Как я мог избежать этого?Спасибо!

enter image description here

public function login(Request $data) {
        $email = $data->input('email');
        $password = $data->input('password');

        try {
            $user = $this->auth->verifyPassword($email, $password);
            Session::put('user_uid', $user->uid);
            Session::put('user_email', $user->email);
            return redirect('/');
        } catch (Kreait\Firebase\Exception\Auth\InvalidPassword $e) {
            $message = $e->getMessage();
            Session::put('message', $message);
            return redirect('login');
        }
    }

1 Ответ

0 голосов
/ 22 ноября 2018

Вам нужно поймать Kreait\Firebase\Exception\InvalidArgumentException как

public function login(Request $data) {
    $email = $data->input('email');
    $password = $data->input('password');

    try {
        $user = $this->auth->verifyPassword($email, $password);
        Session::put('user_uid', $user->uid);
        Session::put('user_email', $user->email);
        return redirect('/');
    } catch (\Kreait\Firebase\Exception\Auth\InvalidPassword $e) {
        $message = $e->getMessage();
        Session::put('message', $message);
        return redirect('login');
    } catch (\Kreait\Firebase\Exception\InvalidArgumentException $e) {
        $message = $e->getMessage();
        Session::put('message', $message);
        return redirect('login');
    }
}

Если вы используете PHP 7.1 +

public function login(Request $data) {
    $email = $data->input('email');
    $password = $data->input('password');

    try {
        $user = $this->auth->verifyPassword($email, $password);
        Session::put('user_uid', $user->uid);
        Session::put('user_email', $user->email);
        return redirect('/');
    } catch (\Kreait\Firebase\Exception\Auth\InvalidPassword | \Kreait\Firebase\Exception\InvalidArgumentException $e) {
        $message = $e->getMessage();
        Session::put('message', $message);
        return redirect('login');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...