Laravel 5.2本地化,auth ::用户值在切换语言时不显示

时间:2016-09-01 10:24:26

标签: php laravel laravel-5 localization

使用Laravel 5.2.41

使用以下翻译包:mcamara/laravel-localization

在我的观点中链接:

<a href="{{ LaravelLocalization::getLocalizedURL(null, trans('routes.account-edit'), ["id" => Auth::user()->id]) }}"> Edit Link</a>

在Lang / fr&amp ;;里面的

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>

无法弄清楚为什么会发生这种情况

1 个答案:

答案 0 :(得分:1)

我正在查看该软件包的代码。

在我看来,如果我没有弄错的话,关于URL转换的逻辑是基于路由名称而不是路径路径。

您正在使用路径路径:

LaravelLocalization::getLocalizedURL(null, trans('routes.account-edit'), ["id" => Auth::user()->id])

但看起来您应该实际使用路线名称,在这种情况下意味着'account-edit'