我以某种方式在setLocale
中将protected $middlewareGroups
中间件注册到Kernal.php
时出错了:
protected $middlewareGroups = [
'web' => [
...,
\App\Http\Middleware\setLocale::class,
],
];
但是令人惊讶的是,这行得通,所以我认为我做对了。
我现在注意到了这一点(在我寻找了一些有关本地化的教程之后)并立即对其进行了纠正,并在Kernal.php中注册了这样的中间件:
protected $routeMiddleware = [
'locale' => \App\Http\Middleware\setLocale::class,
];
并将其添加到我的web.php
中,因为我以前没有这个:
Route::middleware('locale')->group(function() {
...
});
我现在的问题是,当我将其注册到$middlewareGroups
时为什么能正常工作?
这也许是注册中间件的另一种方式吗?
答案 0 :(得分:2)
由于在web
属性中定义的$middlewareGroups
中间件,默认情况下应用于在routes/web.php
中定义的路由。
这是在默认情况下带有新的laravel项目的app/Providers/RouteServiceProvider.php
文件中完成的。
旁注:如果在项目的根文件夹中执行php artisan route:list
,则输出将向您显示应用于已定义路由的所有各种中间件。