首页 文章

未定义的属性:Laravel中的Illuminate \ Database \ Eloquent \ Builder :: $ password

提问于
浏览
1

我正在使用使用Laravel Hashing的散列算法 .

But got this error

未定义属性:Illuminate \ Database \ Eloquent \ Builder :: $ password

Here is my function

public function signin(LoginFormValidation $request)
{
    $user_password = $request->password;

    $data = User::where('email','=',$request->email); 

    if (Hash::check($user_password, $data->password, flase))
    {
        echo "success";
    }
    else
    {
        echo "still not";
    }
}

4 回答

  • 2

    改变这一行:

    $data = User::where('email','=',$request->email);
    

    $data = User::where('email','=',$request->email)->first();
    

    并改变:

    if (Hash::check($user_password, $data->password, flase))
    

    if (Hash::check($user_password, optional($data)->password))
    
  • 0

    试试这个

    public function signin(Request $request)  //chnaged object to Request
    {
        $user_password = $request->password;
    
        $data = User::where('email',$request->email)->first();  // Added first()
    
        if ($data  && Hash::check($user_password, $data->password, false)) // typo error false
        {
            echo "success";
        }
        else
        {
            echo "still not";
        }
    }
    
  • 0

    让你的代码更好,我在你的IF语句中添加了一个修复和一个额外的chek . 如果 $data 未获得有效结果,则需要进行此附加检查 .

    public function signin(LoginFormValidation $request)
    {
        $user_password = $request->password;
    
        $data = User::where('email','=',$request->email)->first(); 
    
        if ($data && Hash::check($user_password, $data->password))
        {
            echo "success";
        }
        else
        {
            echo "still not";
        }
    }
    
  • 0

    我能看到你的模特 User 吗?我认为您应该从 protected $hidden 属性中删除 password 然后再试一次 . 如果你成功,请告诉我

相关问题