Laravel - 语言环境可选地作为 URL 中的第一个参数
Laravel - locale optionally as first parameter in the URL
我更多来自香草 PHP 背景,但我开始进入 Laravel(和 Lumen)。我正在从事一个国际化的项目,并将 URL 结构放在一起。
我是 Apple 示例的粉丝,即 apple.com/mac
为您提供 Apple 美国网站上的 Mac 产品。 apple.com/uk/mac
为您提供 Apple 英国网站上的 Mac 产品(即 apple.com/{locale/?}route
)
是否可以使用 Laravel 复制此行为:
- 第一个参数是我们已知的语言环境
- 如果是,请设置语言环境并继续
- 如果不匹配,参数是否匹配我们注册的路由之一并继续
我看到一些 类似 问题的答案说语言环境作为可选参数 1 是不可能的,因为那时 "the router will not know what to do",但确实有-生活中的例子,Apple 就是我给出的例子(在我从事的一些香草项目中也是如此)。
请问有什么建议吗?
因此,轻松解决此问题的方法是使用提到的 the package @BlackXero。
$localiseGroup = [
'prefix' => LaravelLocalization::setLocale(),
'middleware' => ['localeSessionRedirect', 'localizationRedirect',]
];
Route::group($localiseGroup, function() {
Route::get('/mac', '<handler>');
});
// domain.com/mac and domain.com/es/mac would now work
如果您 read the docs,您将看到所有设置说明以使其按预期工作。
我更多来自香草 PHP 背景,但我开始进入 Laravel(和 Lumen)。我正在从事一个国际化的项目,并将 URL 结构放在一起。
我是 Apple 示例的粉丝,即 apple.com/mac
为您提供 Apple 美国网站上的 Mac 产品。 apple.com/uk/mac
为您提供 Apple 英国网站上的 Mac 产品(即 apple.com/{locale/?}route
)
是否可以使用 Laravel 复制此行为:
- 第一个参数是我们已知的语言环境
- 如果是,请设置语言环境并继续
- 如果不匹配,参数是否匹配我们注册的路由之一并继续
我看到一些 类似 问题的答案说语言环境作为可选参数 1 是不可能的,因为那时 "the router will not know what to do",但确实有-生活中的例子,Apple 就是我给出的例子(在我从事的一些香草项目中也是如此)。
请问有什么建议吗?
因此,轻松解决此问题的方法是使用提到的 the package @BlackXero。
$localiseGroup = [
'prefix' => LaravelLocalization::setLocale(),
'middleware' => ['localeSessionRedirect', 'localizationRedirect',]
];
Route::group($localiseGroup, function() {
Route::get('/mac', '<handler>');
});
// domain.com/mac and domain.com/es/mac would now work
如果您 read the docs,您将看到所有设置说明以使其按预期工作。