gpt4 book ai didi

php - Laravel - 如何通过路由组将变量传递给中间件?

转载 作者:行者123 更新时间:2023-12-04 14:03:14 25 4
gpt4 key购买 nike

这是我的路线组,

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从路由组到中间件的变量。
谢谢。

最佳答案

您可以简单地使用冒号将多个参数传递给中间件。像这样使用它:

Route::group(['middleware' => 'checkUserLevel:some_value_of_level'], function () {
// my routes
});

现在,您可以在 $level 变量中使用此值。
public function handle($request, Closure $next, $level)
{
$user = Auth::user();
if ($user->level > $level) {
return redirect('testUrl');
}

return $next($request);
}

这会有所帮助。

编辑 : 2018 年 12 月 14 日

您还可以将多个变量发送到中间件。您只需要使用逗号 (,) 分隔值。
Route::group(['middleware' => 'checkUserLevel:some_value_of_level, one_more_value_to_send'], function () {
// my routes
});

你会得到值 one_more_value_to_send$level 之后的变量中在中间件处理程序中。
public function handle($request, Closure $next, $level, $another_value)
{
$user = Auth::user();
if ($user->level > $level) {
return redirect('testUrl');
}

return $next($request);
}

更多详情可以引用: Passing parameters to Middleware in Laravel 5.1

关于php - Laravel - 如何通过路由组将变量传递给中间件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42827886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com