我正在尝试通过我的(Blade)模板中的Blade()助手生成一个url。
我的web.php文件看起来如下(虚拟路由,但结构是相同的)
// 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
但是它生成这个url (注意缺少的地区):
https://my-domain.com/product/product-slug
不过,..。如果我将测试路由移动到本地化路由组中,则url生成器将添加区域设置。
这是预期的行为吗?这是否意味着我必须将所有路由添加到本地化路由组中,即使有些路由没有被翻译?
谢谢!
发布于 2017-11-09 10:04:58
我已经通过使用mcamara/laravel本地化包的getLocalizedURL()助手来“修复”这个问题,而不是使用路由()助手。
{{ LaravelLocalization::getLocalizedURL(App::getLocale(), route('product', ['slug' => 'product-slug'])) }}
https://stackoverflow.com/questions/47183603
复制相似问题