【问题标题】:Laravel, jetstream global language prefix to routesLaravel,jetstream 全球语言前缀路由
【发布时间】: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');
});

谢谢。

【问题讨论】:

标签: laravel routes jetstream


【解决方案1】:

Route::group([ 'prefix' => '{locale}', 'where' => ['locale' => '[a-zA-Z]{2}'],'middleware' => 'setlocale']);

【讨论】:

    猜你喜欢
    • 2021-01-08
    • 2018-02-09
    • 2020-07-20
    • 2019-12-19
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 2016-03-26
    相关资源
    最近更新 更多