拉拉维尔语言转换器



我为我的 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');出错。

如何实现语言转换?

您需要再次传递{id}参数。

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

您需要获取当前路由参数并覆盖{language}。为此,可以使用Route::current()->parameters()获取当前路由的参数数组,然后使用array_merge覆盖语言。

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

最新更新