这是我的路由组,
Route::group(['middleware' => 'checkUserLevel'], function () {
// my routes
});
这是我的中间件checkUserLevel,
public function handle($request, Closure $next, $level)
{
$user = Auth::user();
if ($user->level > $level) {
return redirect('testUrl');
}
return $next($request);
}
我想把$level
变量从路由组传递到中间件。谢谢。
2条答案
按热度按时间omhiaaxx1#
您可以简单地使用冒号将多个参数传递到中间件中。
现在,您可以在$level变量中使用该值。
这会有帮助。
编辑:二零一八年十二月十四日
你也可以向中间件发送多个变量,只需要用逗号(,)分隔变量值。
在中间件处理程序中,您将在
$level
之后的变量中获得值one_more_value_to_send
。有关详细信息,请参阅:Passing parameters to Middleware in Laravel 5.1
hmmo2u0o2#
在Laravel 6.x中,您必须像在中间件中那样添加代码
你的路线代码是这样的
在Kernel.php中,在$routeMiddleware的部分中注册您的中间件,如
在我的例子中通过使用url调用路由器
其结果是:
现在您可以在中间件中编写代码