laravel - 在 laravel 中调用字符串上的成员函数 has()
问题描述
我正在处理用户身份验证。当用户提供无效的电子邮件或密码时,我想login.blade.php
通过闪烁的错误消息将他重定向到。
// Auth/LoginController:
public function login(Request $request)
{
$user=User::where('email',$request->email)->first();
if(!is_null($user))
{
if($user->status==1)
{
if(Auth::guard('web')->attempt(['email'=>$request->email,'password'=>$request->password],$request->remember))
return redirect()->intended(route('index'));
}
}
else
{
if(Auth::guard('web')->attempt(['email'=>$request->email,'password'=>$request->password],$request->remember))
{
if(Auth::check())
{
Auth::logout();
}
$user->notify(new VerifyRegistration($user));
session()->flash('success','A new confirmation mail has sent to you...Please check and confirm your email');
return redirect('/');
}
else
{
session()->flash('errors','Password is incorrect!!');
return redirect()->route('login');
}
}
}
else
{
session()->flash('errors','Email or Password is incorrect!!');
return redirect('/login');
}
}
我正在使用默认的 laravel login.blade.php
。
解决方案
当用户输入错误密码而不是设置会话闪存消息时,请使用下面给定的代码在其他情况下重定向用户。
return redirect()->route('login')->with('error','Invalid password.');
在登录模板上,您可以显示错误,例如
@if (session('success'))
<div class="alert alert-success">
<p>{{ session('success') }}</p>
</div>
@endif
@if (session('warning'))
<div class="alert alert-warning">
<p>{{ session('warning') }}</p>
</div>
@endif
@if (session('error'))
<div class="alert alert-error">
<p>{{ session('error') }}</p>
</div>
@endif
推荐阅读
- java - 升级 Jackson-databind 后,缺少的字段将反序列化为 null 而不是空对象
- sql - 验证选择正则表达式中的序号和字符
- mongodb - 从离线副本更新在线 Mongo 数据库
- javascript - axios数据中的等号导致axios没有发送正确的数据对象
- python - Python读取CSV在数据中添加反斜杠
- ftp - 如何从 Windows 客户端使用 -s 模式从文件 sftp
- r - 如何有效地使用 tidyverse 来延长我的数据集,以便根据存储在列中的范围每个值有一行?
- c# - 如何在 C# 中创建一个简单的字符串索引数组的字符串索引数组?
- r - 根据两个变量计算唯一观察值的计数和比例
- javascript - 节点 JS。Uncaught (in promise) ReferenceError: require is not defined