Php 未定义的属性:Illumb\Database\Eloquent\Builder::$password in Laravel

Php 未定义的属性:Illumb\Database\Eloquent\Builder::$password in Laravel,php,laravel,Php,Laravel,我使用的是使用Laravel哈希的哈希算法 但出现此错误 未定义的属性:Illumb\Database\Eloquent\Builder::$password 这是我的功能 public function signin(LoginFormValidation $request) { $user_password = $request->password; $data = User::where('email','=',$request->email);

我使用的是使用Laravel哈希的哈希算法

但出现此错误

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

这是我的功能

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";
    }
}
更改此行:

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

和变化:

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


为了使代码更好,我在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";
    }
}
试试这个

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";
    }
}

我可以看看您的型号
用户吗?
我认为您应该从
protected$hidden
属性中删除
password
,然后重试。
让我知道,如果你让它

@Sohel0415……它给出了新的错误`试图获取非对象的属性'密码'`你正在使用的是什么版本的laravel?这意味着没有用户在database@Sohel0415...new错误显示
local。错误:类型错误:传递参数3以照亮\Hashing\BcryptHasher::check()必须是数组类型,布尔给定的
…@Sohel0415…它仍然给定未定义的属性:
照明\Support\Facades\Request::$password
…如何!!!。。。。。错误已更改并给出新错误
类型错误:传递给Lightning\Hashing\BcryptHasher::check()的参数3必须是array类型,布尔给定的
您可以跳过传递第三个参数,为什么需要它?我将根据您的要求修改我的答案。它不是
flase
而是
false
,您应该先使用
first()
get()
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";
    }
}
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";
    }
}