我正在尝试通过我的一个(Blade)模板中的route()帮助器生成一个url。
我的web.php文件看起来像这样(虚拟路由,但结构是相同的)
dependencies
现在,如果我尝试在测试路径的模板中执行此操作:
// Generic routes
Route::get('/test', 'HomeController@test')->name('test');
// Localized routes
Route::group([
'prefix' => LaravelLocalization::setLocale(),
'middleware' => [ 'localeSessionRedirect', 'localizationRedirect' ]
], function() {
Route::get(LaravelLocalization::transRoute('routes.product'), 'ProductController@product')->name('product');
});
然后它不会生成此网址:
{{ route('product', ['slug' => 'product-slug']) }}
但是它生成了这个url(注意缺少的语言环境):
https://my-domain.com/en-GB/product/product-slug
但是,...如果我将测试路径移动到Localized路由组,则url生成器会添加区域设置。
这是预期的行为吗? 这是否意味着我必须将所有路由添加到本地化路由组中,即使某些路由未被转换?
谢谢!
答案 0 :(得分:0)
我通过使用mcamara / laravel-localization包的getLocalizedURL()帮助器而不是route()帮助器来“修复”这个。
{{ LaravelLocalization::getLocalizedURL(App::getLocale(), route('product', ['slug' => 'product-slug'])) }}