首页 > 解决方案 > 我们无法识别您的电子邮件地址

问题描述

我目前正在创建一个自定义 Laravel 身份验证,但我在登录表单上苦苦挣扎,它一直说它无法识别电子邮件地址。但我确定该电子邮件地址已经在数据库中。

这是我在控制器中的代码:

function check(Request $request){

    $request->validate([
        'email'=>'required|email',
        'password'=>'required|min:6|max:16',
    ]);


    $userInfo = Admin::where('email', '=', $request->email)->first();

    if($userInfo){
        return back()->with('fail', 'We do not recognize your email address');
    }
    else {
        if(Hash::check($request->password, $userInfo->passsword)){
            $request->session()->put('LoggedUser', $userInfo->id);
            return redirect('admin/dashboard');
        }

        else {
            return back()->with('fail', 'Incorrect password');
        }
    }
}

这是我在登录表单刀片中的代码:

<form action="{{ route('auth.check') }}" class="log-form" method="post">

    @if(Session::get('fail'))
    <div class="alert-danger">
        {{ Session::get('fail') }}
    </div>
    @endif

    @csrf

        <div class="name">
            <label>Email Address</label><br>
            <input type="text" id="email" name="email" value="{{ old('email') }}"><br>
        </div>

        <span class="text-danger">
            @error('email') {{ $message }} @enderror
        </span>


        <div class="password">
            <label>Password</label><br>
            <input type="password" id="pass" name="password" value="{{ old('password') }}"><br>
        </div>

        <span class="text-danger">
            @error('password') {{ $message }} @enderror
        </span>
        
        
        <br><br>


        <input type="submit" value="LOG IN" class="log-sub">

    </form> 

我的错误是什么?

标签: laravelauthentication

解决方案


伙计,您的代码中有一个不符合逻辑的 IF 语句。您的 IF 块应该是IF NOT $userInfo,在您的 IF 语句中的 $userInfo 前面添加一个感叹号,将您的 IF 语句更改为

if(!$userInfo){
    return back()->with('fail', 'We do not recognize your email address');
} else {


推荐阅读