laravel - 我们无法识别您的电子邮件地址
问题描述
我目前正在创建一个自定义 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>
我的错误是什么?
解决方案
伙计,您的代码中有一个不符合逻辑的 IF 语句。您的 IF 块应该是IF NOT $userInfo
,在您的 IF 语句中的 $userInfo 前面添加一个感叹号,将您的 IF 语句更改为
if(!$userInfo){
return back()->with('fail', 'We do not recognize your email address');
} else {
推荐阅读
- windows - 如何将端口 X 上的所有请求转发到本地主机(Windows)
- postgresql - 更改列默认值在 postgres 中不起作用
- mysql - 在大型 MySQL InnoDB 表上,全计数查询真的这么慢吗?
- git - 从 GitHub 操作推送到源
- tailwind-css - 如何在tailwindcss的输入字段内创建提交按钮
- sql - 显示报告时跳过无效日期
- powershell - Windows PowerShell 变量中的空格无法继续
- dask - 如何在 dask 数据框中弹出一列?
- flutter - 如何在 Flutter 中将可点击按钮添加到 DropdownMenuItem?
- elasticsearch - Kubernetes 上的 Elasticsearch - 最佳实践