是否可以将参数传递给 laravel 中的全局中间件
Is it possible to pass parameter to a global middleware in laravel
在 laravel 文档中,我看到我可以将参数传递给路由中间件,但我有一个在每个 http 请求上运行的全局中间件。我需要将一个变量传递给这个全局中间件。有可能吗?或者我必须使用路由中间件并在每条路由上显式定义中间件?
这是我的简单测试代码
Route::get('{lang}/product', function($lang){
return view('langtest');
});
我想将 $lang
传递给我的全局中间件。
public function handle($request, Closure $next)
{
/*set the app locale*/
\Log::info($request);
return $next($request);
}
试试这个
Route::get('{lang}/product', function(){
return view('langtest');
})->middleware('lang.lang-1');
在你的中间件中
public function handle($request, Closure $next,$lang)
{
dd($lang);
return $next($request);
}
不要忘记将中间件定义到内核中
protected $routeMiddleware = [
'lang' => \App\Http\Middleware\YourMiddlewareName::class,
];
在 laravel 文档中,我看到我可以将参数传递给路由中间件,但我有一个在每个 http 请求上运行的全局中间件。我需要将一个变量传递给这个全局中间件。有可能吗?或者我必须使用路由中间件并在每条路由上显式定义中间件?
这是我的简单测试代码
Route::get('{lang}/product', function($lang){
return view('langtest');
});
我想将 $lang
传递给我的全局中间件。
public function handle($request, Closure $next)
{
/*set the app locale*/
\Log::info($request);
return $next($request);
}
试试这个
Route::get('{lang}/product', function(){
return view('langtest');
})->middleware('lang.lang-1');
在你的中间件中
public function handle($request, Closure $next,$lang)
{
dd($lang);
return $next($request);
}
不要忘记将中间件定义到内核中
protected $routeMiddleware = [
'lang' => \App\Http\Middleware\YourMiddlewareName::class,
];