试图获取非对象 Laravel 的属性“密码”

jpt*_*431 2 php laravel laravel-5

我正在尝试创建一个登录页面,在其中检查密码。这种方法不久前就可以使用了,但现在它给了我以下错误:

Trying to get property 'password' of non-object
Run Code Online (Sandbox Code Playgroud)

问题在于检索和检查散列密码。但是,我找不到错误。有人可以帮我吗。我的代码如下:

 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');
    }
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*nin 5

这意味着数据库中没有给定电子邮件的用户,此查询的结果是null

User::where('email', $email)->first()
Run Code Online (Sandbox Code Playgroud)

因此,将代码更改为:

if ($hashedPassword && Hash::check($password, $hashedPassword->password)) {
Run Code Online (Sandbox Code Playgroud)

或者使用optional()助手:

if (Hash::check($password, optional($hashedPassword)->password)) {
Run Code Online (Sandbox Code Playgroud)