2017-10-06 61 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'列表,只需添加您的服务供应商类别。