Laravel Переключатель языка - PullRequest
0 голосов
/ 22 января 2020

Я добавляю локализацию в мое приложение laravel. Я определяю язык в своих маршрутах.

Route::group(['prefix' => '{language}/tender', 'middleware' => ['permission:tender-page']], function () {
    Route::get('/', 'TenderController@index')->name('tender');
    Route::get('/add', 'TenderController@add')->name('tender_add');
    Route::get('/{id}', 'TenderController@detail')->name('tender_detail');
});

Я пытаюсь таким образом изменить языки

<li class="nav-item">
    <a href="{{ route(Route::currentRouteName(), 'ru') }}" class="nav-link">RU</a>
</li>
<li class="nav-item">
    <a href="{{ route(Route::currentRouteName(), 'tr') }}" class="nav-link">TR</a>
</li>

, но если я использую этот путь, маршруты такого типа Route::get('/{id}', 'TenderController@detail')->name('tender_detail'); получили ошибку.

Как реализовать преобразователь языка?

1 Ответ

1 голос
/ 22 января 2020

Вам необходимо снова передать параметр {id}.

{{ route(Route::currentRouteName(), ['language' => 'ru', 'id' => $tender_id]) }}

Вам необходимо получить текущие параметры маршрута и переопределить {language}. Вы можете выполнить sh, получив массив параметров текущего маршрута с помощью Route::current()->parameters(), а затем используя array_merge для переопределения языка.

{{ route(Route::currentRouteName(), array_merge(Route::current()->parameters(), ['language' => 'ru']) ) }}
...