我对路线有一些疑问。
在我的应用中,我已经为相同的页面(例如,例如)
"domain.com/en/giveaway"
"domain.com/es/sorteo"
我的lang.routes文件就像
lang.en.routes
return [
'giveaway' => 'giveaway'
]
lang.es.routes
return [
'giveaway' => 'sorteo'
]
我的route.web文件也很
$locale = Request::segment(1);
if (in_array($locale, config('app.languages'))) {
app()->setLocale($locale);
} else {
app()->setLocale('en');
$locale = '';
}
$l = app()->getLocale();
$lang = [
'giveaway' => __('routes.giveaway', [], $l),
];
Route::group(['prefix' => $locale], function () use ($lang) {
Route::get($lang['giveaway'], "Auth\GiveawayController@index")->name('giveaway');
});
这将在我的刀片上正常工作。当我打电话
route('giveaway')
//if app Locale is en returns domain.com/en/giveaway
//if app Locale is es returns domain.com/es/sorteo
这里没问题。
但是我的问题是
我如何显示Google备用hreflang?
在启用应用语言环境后,如何访问domain.com/es/sorteo网址?
有什么主意吗?
我想像刀片一样
route(Request::route()->getName(),[],'es'); //domain.com/es/sorteo
route(Request::route()->getName(),[],'es'); //domain.com/en/giveaway
我尝试过
$oldLocale = app()->getLocale();
app()->setLocale('en');
route(Request::route()->getName(),[],'es');
app()->setLocale($oldLocale);
但是不起作用...
我认为在route.web文件中更改页面加载和语言环境之前处理的路由。
如果我在中间件而不是route.web文件中更改应用程序语言环境,则不会影响路由。路由始终返回默认语言。
我在堆.....有办法吗??????