我嘗試在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 ::'。 –