使用Laravel 5.2.41
使用以下翻译包:mcamara/laravel-localization
在我的观点中链接:
<a href="{{ LaravelLocalization::getLocalizedURL(null, trans('routes.account-edit'), ["id" => Auth::user()->id]) }}"> Edit Link</a>
routes.php文件Lang / nl
<?php
return [
'account-edit' => "account/wijzig-gegevens/{id}",
];
<?php
return [
'account-edit' => "donnees/modifier-donnees/{id}",
];
Laravel路线档案:
Route::group([
'prefix' => LaravelLocalization::setLocale(),
'middleware' => ['localize','localeSessionRedirect', 'localizationRedirect' ]
], function()
{
Route::get(LaravelLocalization::transRoute('routes.account-edit'),'AccountController@edit');
});
当我用默认语言(nl)查看链接时,我得到了正确的链接:
<a href="http://blabla.dev/nl/account/wijzig-gegevens/1">Edit Link</a>
但是当我将语言改为法语时,我会得到以下链接:
<a href="http://blabla.dev/fr/donnees/modifier-donnees/{id}">Edit Link</a>
无法弄清楚为什么会发生这种情况
答案 0 :(得分:1)
我正在查看该软件包的代码。
在我看来,如果我没有弄错的话,关于URL转换的逻辑是基于路由名称而不是路径路径。
您正在使用路径路径:
LaravelLocalization::getLocalizedURL(null, trans('routes.account-edit'), ["id" => Auth::user()->id])
但看起来您应该实际使用路线名称,在这种情况下意味着'account-edit'
。