【发布时间】:2021-11-11 09:39:05
【问题描述】:
是否可以为每个 url 设置全局语言前缀: 目前 php artisan route:list --compact 给出了
+----------+----------------------------------+-..
| Method | URI | Action..
+----------+----------------------------------+-..
| GET|HEAD | api/user | Closur..
| GET|HEAD | forgot-password | Laravel\Fortify\Htt...
| POST | forgot-password | Lara..
| GET|HEAD | livewire/livewire.js | Livewire\..
..
| GET|HEAD | login | Lara..
| GET|HEAD | sanctum/csrf-cookie | Lar..
| POST | two-factor-challenge | L..
| POST | user/confirm-password | Lar..
| GET|HEAD | user/confirm-password | La..
..
| POST | user/two-factor-recovery-codes | Lar..
+----------+----------------------------------+-..
但我想(例如英语和西班牙语)
+----------+----------------------------------+-..
| Method | URI | Action..
+----------+----------------------------------+-..
| GET|HEAD | en/api/user | Closur..
| GET|HEAD | en/forgot-password | Laravel\Fortify\Htt...
| POST | en/forgot-password | Lara..
| GET|HEAD | en/livewire/livewire.js | Livewire\..
..
| GET|HEAD | en/login | Lara..
| GET|HEAD | en/sanctum/csrf-cookie | Lar..
| POST | en/two-factor-challenge | L..
| POST | en/user/confirm-password | Lar..
| GET|HEAD | en/user/confirm-password | La..
..
| POST | en/user/two-factor-recovery-codes | Lar..
....the same in spain:
| GET|HEAD | es/api/user | Closur..
| GET|HEAD | es/forgot-password | Laravel\Fortify\Htt...
... 相应的语言是活跃的。 在 web.php 我尝试
foreach (['en', 'es'] as $k) {
//echo (substr(url()->current(), strlen(url('/')) + 1, 2) == $k);
Route::prefix($k)->group(function () use ($k) {
Route::get('/', fn () => view('welcome'))->name("{$k}_home");
});
}
Route::get('/', function () {
return Redirect::route('es_home');
});
谢谢。
【问题讨论】:
-
您应该能够从包中提取路由并直接在您的 web.php 文件中使用它们。请参阅此处有关使用 ignoreRoutes(); stackoverflow.com/questions/64016900/…