我正在尝试创建一个登录页面,我正在检查密码。这种方法很久以前就已经开始了,但是现在它给了我以下错误:
Trying to get property 'password' of non-object
问题在于检索和检查哈希密码。但是,我找不到错误。有人可以帮助我吗? 我的代码如下:
public function logs_in(Request $request){
$email = $request->input('email');
$password = $request->input('password');
$hashedPassword = User::where('email', $email)->first();
if(Hash::check($password, $hashedPassword->password)){
$request->session()->put('success');
return redirect()->route('admin');
} else {
return redirect()->route('login')->with('login_error', 'Invalid
credentials entered');
}
}
答案 0 :(得分:3)
这意味着在DB中没有给定电子邮件的用户,此查询的结果为null
:
User::where('email', $email)->first()
因此,请将代码更改为:
if ($hashedPassword && Hash::check($password, $hashedPassword->password)) {
或使用optional()
助手:
if (Hash::check($password, optional($hashedPassword)->password)) {