php - laravel 上的本地化 URL 问题
问题描述
我有一些关于路线的问题。
我在我的应用程序中为相同的页面本地化了网址,例如,
“domain.com/en/giveaway”
“domain.com/es/sorteo”
我的 lang.routes 文件就像
lang.en.routes
return [
'giveaway' => 'giveaway'
]
lang.es.routes
return [
'giveaway' => 'sorteo'
]
我的路线也像
$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
到这里没问题。
但我的问题是;
我如何显示谷歌备用hreflang?
当应用程序区域设置为 en 时,如何访问 domain.com/es/sorteo url?
有什么想法吗?
我想在刀片中这样做
<link rel="alternate" hreflang="en"
href="{{route(Request::route()->getName())->getLocalized('en')}}"/>
<link rel="alternate" hreflang="es"
href="{{route(Request::route()->getName())->getLocalized('es')}}"/>
解决方案
抱歉之前的评论,我误解了这个问题。尝试这样的事情:
在 composer.json 中创建一个帮助文件并自动加载,其中包含如下内容:
if(!function_exists("localroute")){
function localroute($name, $locale){
$old_locale = app()->getLocale();
app()->setlocale($locale);
$route = route($name);
app()->setlocale($old_locale);
return $route;
}
}
然后只需调用localroute("giveaway")
.
推荐阅读
- gmail - 从 AWS SES 发送 AMP 电子邮件时,GMAIL 上未显示
- php - 从复选框传递值并将它们显示在 Laravel 的另一个页面中的问题
- swift - 如何使用 indexpathforselectedrow 从我的结构数组中获取实例?
- windows - Windows批处理:在调用批处理打开的cmd窗口中运行命令?
- java - Spring 3:具有方面的异步方法中的“范围'请求'对于当前线程不活动”
- ios - 如何在没有应用程序预览的情况下将 pkpass 文件添加到钱包?
- arduino - Vorto Arduino Generator:没有已知的数据类型参数的转换百分比
- cluster-computing - 如何在 slurm 中获取节点上分配的作业列表?
- scala - Scala 代码在 Intellij 上运行,但不在 Apache Zeppelin 笔记本上
- sql - SQL 查询以删除约束名称中带有空格的约束。示例 - ORD_PYMNT_DTL PK