2017-10-01 125 views
0

在laravel文檔中,我看到我可以將參數傳遞給路由中間件,但我有一個全局中間件,可以在每個http請求上運行。我需要將一個變量傳遞給這個全局中間件。有可能嗎?或者我必須使用路由中間件,並明確定義每條路由上的中間件?是否可以將參數傳遞給全局中間件laravel

這裏是我的簡單的測試代碼

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); 
} 
+0

您可以使用$請求 - > lang – iCoders

+0

不,$請求是空的。 – sadek

+0

okay.then我認爲它不是一個全球性的中間件,因此請求不會通過該中間件 – iCoders

回答

0

在中間件試試這個

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, 
    ]; 
相關問題