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}
并且走错了路线。
我的 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}
并且走错了路线。