2017-10-06 60 views
0

我創建了一個laravel包,並且我希望在此包中使用中間件,但是當註冊服務提供者中的中間件並用於路由時,我看到一個問題。如何在laravel包中註冊Middelware

這是我在我的服務提供商代碼:

$router = $this->app['router']; 
    $router->middleware('checkRoles', Ilbeygi\UserRole\Middlewares\CheckRole::class); 

路線:

Route::get('permission','[email protected]')->middleware('checkRoles'); 

錯誤:

`ReflectionException (-1) 
Class checkRoles does not exist` 

請幫我...

laravel版本:5.5

回答

0

中間件是註冊在

. 
+-- app 
| +-- Http 
|  +-- Kernel.php 

在這個內核級你找到$routeMiddleware這是一個數組off註冊中間件類。只需加上你的:

protected $routeMiddleware = [ 
    'checkRoles' => \Ilbeygi\UserRole\Middlewares\CheckRole::class, 

一句話:如果你的服務提供商沒有在你的應用程序中註冊,它是不可用的。你可以註冊一個服務提供商:

. 
+-- config 
| +-- app.php 

有你有'providers'列表,只需添加您的服務供應商類別。