如何在Laravel Global Middleware中获取路由参数?

时间:2015-08-13 21:46:51

标签: laravel laravel-5

我有全局中间件,我需要从routes.php中定义的路由获取参数。我的$request->route()NULL

2 个答案:

答案 0 :(得分:5)

你做不到。该路线尚未匹配。路由参数仅在路由中间件中可用。

考虑一下:全局中间件访问路由参数没有多大意义,因为每个路由都有不同的参数。

可以获取URI段:

$id = $request->segment(2);

将所需分段的数字(基于1的索引)传递给它。

答案 1 :(得分:0)

另一种方法是手动使中间件“全局”。

方法1

将其放入$middlewareGroups中的所有app/Http/Kernel.php中:

protected $middlewareGroups = [
    'web' => [
        //...
        YourGlobalMiddleware::class,
    ],

    'api' => [
        //...
        YourGlobalMiddleware::class,        
    ],
];

方法2

将所有路由打包到一个组中,并为其分配中间件:

Route::group(['middleware' => 'your_global_middleware'], function () {
    //all your routes
});