繁体   English   中英

在中间件中获取laravel当前路由组

[英]Get laravel current route group in middleware

有没有办法在Laravel中间件中获取当前路由的父路由组?

public function handle($request, Closure $next, $guard = null)
{
    // here I mean
}

您无法从路线中获取该组,尤其是您可以在其他组中嵌套组。

能够分辨当前请求属于哪个组的最简单方法是向中间件添加参数 - 有关详细信息,请参阅文档: https//laravel.com/docs/5.2/middleware#middleware-parameters

首先,在handle()方法中声明参数:

public function handle($request, Closure $next, $group = null)
{
  // your logic here
}

然后,在将中间件分配给组时,可以将组名称作为参数传递:

Route::group(['middleware' => 'yourmiddleware:groupname'], function () {
  // your routes go here
});

然后在您的中间件中,您可以根据传递的组名执行不同的操作:

if ($group === 'groupname') {
  // some custom logic here
}

如果您计划为不同组执行的逻辑不同,则应考虑实现多个中间件,而不是将组名作为参数传递,以保持职责分离。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM