Laravel 8 重定向网络路由

Laravel 8 redirect web routes

我的 Laravel 8 路线似乎某处有错误。

我的网络路由文件:

Route::get('/{locale}', function ($locale) {
  if(!in_array($locale, ['en','nl','ru','uk','fr','de','es','pt','it']))
    abort(400);

  App::setLocale($locale);

  return view('welcome');
});

Route::get('/', function () {
  return redirect('/en');
});

Route::middleware(['auth:sanctum'])->get('/dashboard/{locale}', function ($locale) {
    if(!in_array($locale, ['en','nl','ru','uk','fr','de','es','pt','it']))
      abort(400);

    App::setLocale($locale);

    return view('dashboard');
})->name('dashboard');

Route::middleware(['auth:sanctum'])->get('/dashboard', function () {
  return redirect('/dashboard/en');
});

当转到 / 时,它被重定向到 /en。 但是当转到 /dashboard 时,它不会重定向到 /dashboard/en 而是给出错误:

Symfony\Component\HttpKernel\Exception\HttpException
http://127.0.0.1:8000/dashboard

可以看出,没有给出很多信息。

有人知道该怎么办吗?

找到了:

Laravel 从上到下处理路由。这意味着它在到达 /dashboard 之前到达 /{locale}。在这种情况下 dashboard 被视为 {locale} 并且走错了路线。