类 'App\Http\Controllers\Hash' 未找到。

3

我试图在全局函数文件中使用哈希(Hash)。

我一直收到这个错误:

类“App\Http\Controllers\Hash”未找到

我的文件位于以下位置:

/app/Helpers/functions.php

<?php

    use App\Http\Controllers\Hash;

    // If old password matches password
    function checkOldPassword($oldPassword, $user) {
        if (Hash::check($oldPassword, $user->password)) {
            dd('a');
        }
        else {
            return back()->withErrors([
                'message' => 'Your old password is incorrect.'
            ]);
        }
    }
3个回答

22

use Illuminate\Support\Facades\Hash;导入哈希类。


4

Hash是一个门面。它在你的控制器中工作是因为已经正确导入:use Hash;然而,在其他类或文件中,你需要按照上述方式导入它或使用反斜杠而不进行包含:

<?php

// If old password matches password
function checkOldPassword($oldPassword, $user) {
    if (\Hash::check($oldPassword, $user->password)) {
        dd('a');
    }
    else {
        return back()->withErrors([
            'message' => 'Your old password is incorrect.'
        ]);
    }
}

1
正如错误提示所指出的那样,除非你创建了一个名为App\Http\Controllers\Hash的类,否则不存在这个类。移除该行代码后,你的代码应该可以正常运行。

哈希在我的控制器文件中起作用。控制器文件具有此命名空间。 “namespace App\Http\Controllers;” 和“use Hash;” - user9488030
use 运算符在类定义之外是相对于全局空间的。你的 helper 没有命名空间,因此可以在不使用完全限定名称或 use 运算符的情况下访问全局空间。 - Andrew Gillis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接