Php 自定义类和服务提供程序-Laravel 5.4

Php 自定义类和服务提供程序-Laravel 5.4,php,laravel,laravel-5,laravel-5.4,Php,Laravel,Laravel 5,Laravel 5.4,我尝试在Laravel5.4中创建一个新的自定义类来检查用户类型 我将这个新类添加到一个新文件夹app\ItSolution,代码: <?php namespace App\ItSolution; class DemoClass { public function getPermission() { switch(Auth::user()->user_type_id) { case 1: retu

我尝试在Laravel5.4中创建一个新的自定义类来检查用户类型

我将这个新类添加到一个新文件夹app\ItSolution,代码:

<?php

namespace App\ItSolution;

class DemoClass {


    public function getPermission() {
        switch(Auth::user()->user_type_id) {
            case 1:
                return 'admin';
                break;
            case 2:
                return 'promoter';
                break;
            case 3:
                return 'customer';
                break;
            default:
                return false;
        }
    }
}
<?php

namespace App\ItSolution;
use Illuminate\Support\Facades\Facade;

class DemoClassFacade extends Facade {
    protected static function getFacadeAccessor() { return 'democlass'; }
}
但是,当我尝试在控制器中使用DemoClass别名时,出现了此错误 DemoClass::getPermission():

找不到类“App\Http\Controllers\DemoClass”


Thnaks,我该如何解决这个问题。

您将此类注册为facade,因此需要将其添加到类的开头:

use DemoClass;
或者,您可以在使用facade时使用完整名称空间:

\DemoClass::

在Laravel5.4中,注册门面不需要服务提供商,可以使用自动Facades,只需定义DemoClass

i、 e在控制器中:

use Facades\ {
   App\ItSolution\DemoClass
};
并调用该函数

DemoClass::getPermission()

Source

非常感谢,这是一项工作,但是你知道如何使用视图中的外观吗?谢谢。@MalekBenelouafi我使用的是助手而不是facades,所以我不是100%确定,但请尝试将它与完整的命名空间一起使用
\DemoClass::
use Facades\ {
   App\ItSolution\DemoClass
};
DemoClass::getPermission()