试图获取财产密码'非对象Laravel

时间:2018-02-21 11:13:26

标签: php laravel laravel-5

我正在尝试创建一个登录页面,我正在检查密码。这种方法很久以前就已经开始了,但是现在它给了我以下错误:

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');
    }
}

1 个答案:

答案 0 :(得分:3)

这意味着在DB中没有给定电子邮件的用户,此查询的结果为null

User::where('email', $email)->first()

因此,请将代码更改为:

if ($hashedPassword && Hash::check($password, $hashedPassword->password)) {

或使用optional()助手:

if (Hash::check($password, optional($hashedPassword)->password)) {