Laravel - 语言环境可选地作为 URL 中的第一个参数

我更多来自普通 PHP 背景,但我开始接触 Laravel(和 Lumen)。我正在处理一个国际化项目并将 URL 结构放在一起。

我是 Apple 示例的粉丝,即apple.com/mac在 Apple 的美国网站上为您提供 Mac 产品。apple.com/uk/mac在 Apple 的英国网站 (ie apple.com/{locale/?}route)上为您提供 Mac 产品

Laravel 是否可以复制这种行为:

  1. 第一个参数是我们已知的语言环境之一

  2. 如果是这样,设置语言环境并继续

  3. 如果不是,参数是否匹配我们注册的路由之一并继续

我已经看到一些类似问题的答案,说语言环境作为可选参数 1 是不可能的,因为那样“路由器将不知道该做什么”,但有现实生活中的例子,Apple 是我的例子已经给出(以及在我从事的一些香草项目中),这是在哪里完成的。

请问你能指教吗?


catspeake
浏览 163回答 1
1回答

泛舟湖上清波郎朗

因此,轻松解决此问题的方法是使用提到的包@BlackXero。$localiseGroup = [&nbsp; &nbsp; 'prefix' => LaravelLocalization::setLocale(),&nbsp; &nbsp; 'middleware' => ['localeSessionRedirect', 'localizationRedirect',]];Route::group($localiseGroup, function() {&nbsp; &nbsp; Route::get('/mac', '<handler>');});// domain.com/mac and domain.com/es/mac would now work如果您阅读文档,您将看到所有设置说明以使其按预期工作。
打开App,查看更多内容
随时随地看视频慕课网APP