lumen
web.php中定义路由,post方法提交age参数,经过中间件auth_age:
$app->group(['middleware' => 'auth_age'], function() use ($app) {
$app->group(['namespace' => '\App\Account\Http\Controllers'], function() use ($app) {
$app->post('/age', [
'as' => 'age',
'uses' => 'UserController@getAge'
]);
});
});
app.php中已注册auth_age:
$app->routeMiddleware([
'auth_age' => App\Account\Http\Middleware\AgeMiddleware::class,
]);
中间件 AgeMiddleware.php:
public function handle($request, Closure $next)
{
//echo $request->input('age');exit; //post到这里能获取到
if ($request->input('age') < 18) {
return redirect('/');
}
return $next($request); //这里跳转到 UserController@getAge
}
UserController.php
public function getAge($age) //这里的$age参数无法获取,且报错
{
return "age is ".$age.".";
}
不加$age参数的话没有出错信息
public function getAge(){
...
}
请教的问题:如何把post后的参数经过中间件,也能完整的传给后面的Controller?
自己回答:
UserController.php