【问题标题】:Get laravel current route group in middleware在中间件中获取 laravel 当前路由组
【发布时间】:2016-12-16 15:15:16
【问题描述】:

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

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

【问题讨论】:

  • 请举例说明您的路线是什么以及您期望得到的最终结果。

标签: php laravel laravel-5 laravel-routing


【解决方案1】:

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

能够判断当前请求属于哪个组的最简单方法是将参数添加到您的中间件 - 请参阅此处的文档以获取更多详细信息: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
}

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

【讨论】:

    猜你喜欢
    • 2016-04-01
    • 2019-08-17
    • 1970-01-01
    • 2016-10-10
    • 2015-04-26
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    相关资源
    最近更新 更多