注册全局中间件无法获取 $request 里的值

web.php文件

Route::get('/home', function () {
    return view('welcome');
});

Route::get('/age/{age}', function ($age) {
    return $age;
})->middleware('test');

生成middleware 文件

php artisan make:TestMiddleware

TestMiddleware.php

public function handle($request, Closure $next)
{
    //如果age 小于等于100 重定向到 /home
    if($request->age >= 100){
        return redirect('home');
    }
    return $next($request);
}

Kernel.php

protected $middleware = [
    \App\Http\Middleware\Test::class,
];

没办法转跳

测试后发现 requset->age === null,但是添加在middlewareGroups 或者 routeMiddleware 里却是正常的,而在terminate() 里也是能正常获取到值的

为什么会这样

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
Summer
最佳答案
Route::get('/age/{age}', .....

在中间件里应该使用这种方法来拿:

// http://example.com/ages/100
$request->route('age');   // 100

// http://example.com/ages/100?age=10
$request->age;  // 10
6年前 评论
讨论数量: 1
Summer
Route::get('/age/{age}', .....

在中间件里应该使用这种方法来拿:

// http://example.com/ages/100
$request->route('age');   // 100

// http://example.com/ages/100?age=10
$request->age;  // 10
6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!