我尝试在laravel 5.4中创建一个新的自定义类来检查用户类型。自定义类和ServiceProvider - Laravel 5.4
我在一个新的文件夹的应用程序\ 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;
}
}
}
我想在我的所有应用程序来使用这个类,所以我尽量让一个新的ServiceProvider,代码:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App;
class AuthLibServiceProvider extends ServiceProvider
{
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the application services.
*
* @return void
*/
public function register()
{
App::bind('democlass', function()
{
return new \App\ItSolution\DemoClass;
});
}
}
我可以把我的类的新门面在同一文件夹中的应用程序\ ItSolution,代码:
<?php
namespace App\ItSolution;
use Illuminate\Support\Facades\Facade;
class DemoClassFacade extends Facade {
protected static function getFacadeAccessor() { return 'democlass'; }
}
之后,我添加此礼NE在app/config.php文件
'aliases' => [
...
'DemoClass'=> App\ItSolution\DemoClassFacade::class,
]
'providers' => [
...
App\Providers\AuthLibServiceProvider::class,
]
但是,当我尝试使用DemoClass别名在我的控制器 DemoClass :: getPermission()我有此错误:
级“应用程序\ HTTP \ Controllers \ DemoClass'找不到
我该如何解决请Thnaks。
太感谢你了,它的工作,但你如何使用的任何想法正面视图?谢谢。 –
@MalekBenelouafi我使用helpers而不是facades,所以我不是100%肯定的,但是尝试使用完全命名空间'\ DemoClass ::'。 –