簡體   English   中英

Laravel 5.1注冊包中間件

[英]Laravel 5.1 Register Package Middleware

我正在為我的自定義包開發一些中間件。 但是,為了使用這些包中間件,我必須手動將它添加到kernel.php文件中的$routeMiddleware 所以現在,我必須在使用我的包時每次手動添加這些額外的代碼行。

'login.auth' => \Vendor\Package\http\middleware\loginAuth::class,
'login.guest' => \Vendor\Package\http\middleware\loginGuest::class,
'login.permission' => \Vendor\Package\http\middleware\loginPermission::class,

隨着包的增長,列表可能會變得更長。 如何更好地注冊包中間件而無需手動將所有這些注冊到$routeMiddleware

要添加基於路由的中間件,請在包服務提供程序中執行此操作(引導方法)。

public function boot(\Illuminate\Routing\Router $router)
{
    $router->middleware('name', 'MiddlewareClass');
}

此外,對於不基於路由的中間件,類Illuminate\\Foundation\\Http\\Kernel有這兩種公共方法,您可以調用:

/**
* Add a new middleware to beginning of the stack if it does not already exist.
*
* @param  string  $middleware
* @return $this
*/
public function prependMiddleware($middleware)

/**
* Add a new middleware to end of the stack if it does not already exist.
*
* @param  string  $middleware
* @return $this
*/
public function pushMiddleware($middleware)

對於laravel 5.4及以上版本,請使用:

public function boot(\Illuminate\Routing\Router $router)
{
    $router->aliasMiddleware('name', 'MiddlewareClass');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM