Laravel 5.5 - 助手 class 在 view/blade 模板内工作,但在控制器内不起作用

Laravel 5.5 - Helper class works inside view/blade template, but doesn't work inside controllers

我为自己创建了一个名为 Perm 的助手 class,它是为 return 当前会话的用户准备的(我知道,我可以使用默认值 auth/user,但那不会'比从头开始创建一个更有趣!)

..可悲的是,创建的助手 class 只能在视图中工作,但在控制器中根本不起作用..这有点不对劲。

每当我尝试在控制器中使用它时,它会弹出:

"Class 'App\Http\Controllers\Perm' not found"

如有任何帮助,我将不胜感激。

HelperServiceProvider.php:

namespace App\Providers;

use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;

class HelperServiceProvider extends ServiceProvider
{
    public function boot()
    {
        //
    }

    public function register()
    {
        foreach( glob (app_path().'/Helpers/*.php' ) as $filename ) // register all helpers
        {
            require_once($filename);
        }
    }
}

Helpers/PermHelper.php:

use App\User;

class Perm
{
    public static function user()
    {
        if(!session('user_id')) return null;
        return User::find(session('user_id'));
    }
}

config/app.php 的部分,'providers' 数组:

// Custom
App\Providers\HelperServiceProvider::class,

如果您也遇到了这个问题。 使用适当的命名空间。