2017-11-08 6 views
2

私は、自分の(Blade)テンプレートの1つでroute()ヘルパーを通してURLを生成しようとしています。route()はロケールなしのURLを生成します

マイweb.phpファイルは次のようになります(ダミーのルートが、構造は同じである)私は私のテストルートのテンプレートでこれを行うにしようとした場合、

// Generic routes 
Route::get('/test', '[email protected]')->name('test'); 

// Localized routes 
Route::group([ 
    'prefix' => LaravelLocalization::setLocale(), 
    'middleware' => [ 'localeSessionRedirect', 'localizationRedirect' ] 
    ], function() { 
     Route::get(LaravelLocalization::transRoute('routes.product'), '[email protected]')->name('product'); 
}); 

今:

{{ route('product', ['slug' => 'product-slug']) }} 

そして、それはこのURLを生成しません:

https://my-domain.com/en-GB/product/product-slug 

をしかし、それはこのURL(行方不明ロケールに注意してください)を生成:を

https://my-domain.com/product/product-slug 
ただし、テストルートをローカライズされたルートグループに移動すると、URLジェネレータはロケールを追加しません。

これが期待どおりの動作ですか? これは、一部のルートが翻訳されていないのに、ローカライズされたルートグループにすべてのルートを追加する必要があることを意味しますか?

ありがとうございます!

答えて

0

これは、route()ヘルパーの代わりにmcamara/laravel-localizationパッケージのgetLocalizedURL()ヘルパーを使用してこれを '固定'しました。

{{ LaravelLocalization::getLocalizedURL(App::getLocale(), route('product', ['slug' => 'product-slug'])) }} 
関連する問題